closure - TIL29
클로저
실행 가능한 코드의 블럭으로서 함수와 같이 이름정의는 필요가 없으나, 매개변수 전달과 반환을 가질수 있다는 점은 동일하다.(함수는 이름이 있는 클로저이다.)
일급객체로서 변수, 상수, 등올 저장하거나 전달인자로 전달 가능하다.
클러조를 정의하는 방법
{ (매개변수 목록) -> 반환타입 in //매개변수 목록이 없으면 생략가능하며 반환타입이 없다면 Void를 쓰면 된다.
실행코드
}
함수 이름이나 여러가지를 저장했어야 했는데, 이때 함수라는 변수에 클로저를 사용할 때
var sum: (Int, Int) -> Int = { (a: Int, b: Int) -> Int in
return a + b
}
sumResult = sum(1, 2)
함수들을 사용했을 때 파라미터의 이름을 가져와서 값을 입력하는 것과 달리 파라미터를 적을 필요가 없어진다.
댓글
