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)
}
이렇게 변경해서 이렇게 사용해야 더 가독성도 좋고 기능도 좋은 코드가 된다.