let add = {(val1: Int, val2: Int) -> Int in
return val1 + val2
}
var result = add(10, 20)
print(result) //30
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
result = math(x: 10, y: 20, cal: {(val1: Int, val2: Int) -> Int in
return val1 + val2
}) //클로저 소스를 매개변수에 직접 작성
print(result)
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
var result = math(x: 10, y: 20) {(val1: Int, val2: Int) -> Int in
return val1 + val2
}//후행 클로저
print(result)
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
var result = math(x: 10, y: 20) {(val1: Int, val2: Int) in
return val1 + val2
} //후행클로저, 리턴형 생략
print(result)
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
var result = math(x: 10, y: 20) {
return $0 + $1
} //후행클로저, 매개변수 생략하고 단축인자(shorthand argument name)사용
print(result)
func math(x: Int, y: Int, cal: (Int, Int) -> Int) -> Int {
return cal(x, y)
}
var result = math(x: 10, y: 20) {
$0 + $1
} //후행클로저, 클로저에 리턴값이 있으면 마지막 줄을 리턴하므로 return생략
print(result)
'Swift' 카테고리의 다른 글
Swift 정리 : 프로퍼티(Property) (0) | 2022.10.18 |
---|---|
Swift 정리 : 클래스 (0) | 2022.10.18 |
Swift 정리 : 클로저 (0) | 2022.10.11 |
Swift 정리 : 함수 - 1급 객체 (0) | 2022.10.11 |
Swift 정리 : guard let (0) | 2022.10.11 |