[swift] Closure

2023. 2. 22. 13:43👩🏻‍💻 ios 앱개발 ( swift )

728x90

closure  : 이름이 없는 메소드 ***유용한 기능

 

//두 수를 곱하는 closure
//파라미터의 이름이 따로 없음
//var multiplyClosure: (Int, Int) -> Int = { (a: Int, b: Int) -> Int in
//    return a*b
//}

////생략가능한 부분들 생략
//var multiplyClosure: (Int, Int) -> Int = {$0 * $1}

//이정도로 생략하는게 적절
var multiplyClosure: (Int, Int) -> Int = {a, b in
    return a*b
    
}
//이정도로 생략하는게 적절
var multiplyClosure: (Int, Int) -> Int = {a, b in
    return a*b
    
}

let result = multiplyClosure(4,2)

func operateTwoNum(a: Int, b: Int, operation: (Int,Int) -> Int) -> Int {
    let result = operation(a,b)
    return result
}

operateTwoNum(a: 4, b: 2, operation: multiplyClosure)

var addClosure: (Int, Int) -> Int = {a,b in
    return a+b
}

operateTwoNum(a: 4, b: 2, operation: addClosure)

operateTwoNum(a: 4, b: 2, operation: {a, b in
    return a/b
})
//closure 장점 : 원하는 동작을 끼워넣을 수 있다. 실무에서 많이 사용

//input, output이 없는 closure

let voidClosure: () -> Void = {
    print("iOS Developer !!")
}

voidClosure() //주의 ! () 있어야됨

 

 

swift에서 closure는 자주등장함!

잘 알아둬야됨 ><

'👩🏻‍💻 ios 앱개발 ( swift )' 카테고리의 다른 글

[swift] Class vs. Structure  (0) 2023.02.27
[swift] Closure & Collection **연습하기(reduce, filter, map)  (3) 2023.02.24
[swift] Collection  (1) 2023.02.17
[swift] optional  (0) 2023.02.16
[ swift ] Function  (0) 2023.02.14