본문 바로가기
Swift

[Swift] 14. 클로저

by CodingKwon 2021. 10. 7.

1. 클로저 Closure

  • 코드의 블럭
  • 일급 시민(first-citizen)
  • 변수, 상수 등으로 저장, 전달인자로 전달이 가능
{ (매개변수 목록) -> 반환타입 in
    실행 코드
}

 

예시

// sum이라는 상수에 클로저를 할당
let sum: (Int, Int) -> Int = { (a: Int, b: Int) in
    return a + b
}

let sumResult: Int = sum(1, 2)
print(sumResult) // 3

 

2. 다양한 클로저 표현

  • 후행 클로저 : 함수의 마지막으로 전달되는 클로저
  • 클로저의 타입을 유추 가능한 경우 매개변수, 반환타입 생략 가능
  • 반환 값이 있는 경우, 암시적으로 맨 마지막 줄 return 생략 가능
  • 전달인자의 이름이 굳이 필요 없고, 컴파일러가 타입을 유추 가능한 경우 축약한 전달인자
    • $0, $1, $2, ... 
//축약 전
result = calculate(a: 10, b: 10, method: { (left: Int, right: Int) -> Int in
    return left + right
})

//축약 후
result = calculate(a: 10, b: 10) { $0 + $1 }

print(result) // 20

 

'Swift' 카테고리의 다른 글

[Swift] 16. 상속  (0) 2021.10.14
[Swift] 15. 프로퍼티 Property  (0) 2021.10.07
[Swift] 13. 값 타입, 참조 타입  (0) 2021.10.07
[Swift] 12. 열거형  (0) 2021.10.06
[Swift] 11. 클래스  (0) 2021.10.06

댓글