Function

작성일

Function

  • 가장 많이 사용하는 문법 만약 계산기를 만든다고 치면,
    계산기 자체는 Class가 되고, +,-기능은 Function이 된다.

예를 들어,

let a = 10
let b = 20

func plus(num1: Int, num2: Int) {
  print("sum = ", num1 + num2)
}

plus(num1: a, num2: b)

를 출력해보면,

sum = 30

이 나온다.
return을 활용해서 받아올수도 있는데,

let a = 10
let b = 20

func plus(num1: Int, num2: Int) -> Int {
  return num1 + num2
}

let sum = plus(num1: a, num2: b)
sum

출력해보면

30

이 나온다. return 값을 위에서 Int로 줬기 때문이다.
밖에 plus가 너무 복잡해 보이면,

let a = 10
let b = 20

func plus(_ num1: Int,_ num2: Int) -> Int {
  return num1 + num2
}

let sum = plus(a, b)
sum

이런식으로 없애줄수 있다.


이를 종합해 보면,

let a = 10
let b = 20

func plus(_ num1: Int,_ num2: Int) -> Int {
  return num1 + num2
}

func minus(_ num1: Int,_ num2: Int) -> Int {
  return num1 - num2
}

func multply(_ num1: Int,_ num2: Int) -> Int {
  return num1 * num2
}

//view, Present, Display

var inputButtonType = "+"

if inputButtonType == "+" {
  print("연산 결과", plus(a, b))
}else if inputButtonType == "-" {
  print("연산 결과", minus(a, b))
}sles if inputButtonType == "*" {
  print("연산 결과", multply(a, b))
}

이렇게 화면에 뿌려주는 로직과 같이 연동하면서 사용 하면 된다.
하지만, 이런 로직은 수정할때 매우 안좋은 로직이다.
따라서

if inputButtonType == "+" {
  print("연산 결과", plus(a, b))
}else if inputButtonType == "-" {
  print("연산 결과", minus(a, b))
}sles if inputButtonType == "*" {
  print("연산 결과", multply(a, b))
}

이 부분만

func displayCalc(result: (Int, Int) -> Int ) {
  print("연산 결과", result(a, b))
}

if inputButtonType == "+" {
  displayCalc(result: plus)
}else if inputButtonType == "-" {
  displayCalc(result: minus)
}sles if inputButtonType == "*" {
  displayCalc(result: multply)
}

이렇게 변경해서 이렇게 사용해야 더 가독성도 좋고 기능도 좋은 코드가 된다.