코드에서 전달 및 사용할 수 있는 독립 기능 블록
일급 객체의 역할을 할 수 있음
1급 객체?
다른객체들에 일반적으로 적용가능한 연산을 모두 지원하는 객체
함수에 인자로 넘기기, 수정하기, 변수대입하기와 같은 연산을 지원할 때 일급객체 라고합니다.
클로저라고 부르지 않고 함수라고 부릅니다.
클로저 입니다.
func qwer() {
print("lol")
}
익명함수 라고 합니다.
함수니까 1급객체 함수의 특성을 갖고있습니다.
클로저라고 하면 보통 Unnamed Closure를 말합니다.
let qwer = { print("lol") }
익명함수기 때문에 func키워드를 쓰지 않습니다.
클로저 헤드와 클로저 바디로 이루어져 있습니다.
{ (매개 변수) -> 리턴 타입 in
실행 구문
}
매개변수부터 리턴타입까지를 클로저 헤드라고 하며
실행 구문이 클로저 바디입니다.
이 둘을 구분지어 주는 것이 in 입니다.
let qwer = { () -> () in
print("lol")
}
let qwer = { (name: String) -> String in
return "Hello, \(name)"
}
qwer("lol")
qwer(name: "lol") 이라고 쓰지 않습니다.!
클로저에서는 Argument Label 을 사용하지 않기 때문 입니다.
참고자료