본문 바로가기

Swift

Swift 정리 : 클로저 축약 표현

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