iOS swift
swift-클로저
춘행이
2022. 2. 28. 21:24
728x90
클로저
코드에서 전달 및 사용할 수 있는 독립 기능 블록이며, 일급 객체의 역할을 할 수 있다
일급 객체라서 전달 인자로 보낼수 있고 변수 상수에 저장하거나 전달 가능하고 함수의 반환 값이 될 수 도 있다
기본형
{ {매개 변수) -> 리턴 타입 in
실행 구분
}
//파라미터와 리턴타입 둘다 없는 클로저
let hello = { () -> () in
print("helle")
}
hello() //hello
//파라미터와 리턴타입 있는 클로저
let hello2 = { (name: String) -> String in
return "hello, \(name)"
}
hello2(name: "choi") //에러
hello2("choi") //hello choi
//함수의 파라미터가 클로저
func doSomething(closure: () -> ()) {
closure()
}
doSomething(closure: { () -> () in
print("hello")
})//hello
//간략화
doSomething() {
print("hello2")
}
//반환타입이 클로저
func doSomething2() -> () -> (){
return { () -> () in
print("helle4")
}
}
doSomething2()()//hello4
728x90