[Swift] 17. 클로저(closure) 고급
2020. 11. 3. 16:12
iOS/Swift
클로저를 다양하게 사용하는 방법에 대해서 공부했다. 후행클로저, 반환타입 생략, 단축 인자 이름, 암시적 반환 표현 의 다양한 모습으로 클로저를 표현할 수 있다. 일반적으로 클로저는 다음과 같이 사용할 수 있다. // 클로저 기본 표현 func calcluate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int { return method(a, b) } 지난 번에 클로저 기본에 대해서 공부할 때 함수의 인자로 받아 사용했던 기억이 있다. 이번에는 클로저의 기본 문법에서 다양한 모습으로 바꿔서 사용해보려고 한다. 후행 클로저 함수의 매개변수 마지막으로 전달되는 클로저는 후행 클로저(trailing closure)로 함수 밖에 구현할 수 있다. 클로저가 함수의 마지막 ..
[Swift] 16. 클로저(closure) 기본
2020. 11. 2. 20:36
iOS/Swift
클로저 | Closures 클로저는 실행 가능한 코드 블럭 {} 이다. 오브젝트-C 의 블럭과 다른 언어의 람다와 유사하다고 한다. 함수와 다르게 이름 정의는 필요하지 않지만, 매개변수 전달과 반환 값이 존재할 수 없다는 점이 동일하다. 함수는 이름이 있는 클로저 다. 일급 객체로 전달인자, 변수, 상수 등에 저장 및 전달이 가능하다. 참조 타입 이다. 그럼 클로저는 어떻게 사용하는가? { (매개변수 목록) -> 반환타입 in 실행 코드 } 실행 가능한 코드 블럭이라고 했기 때문에 { } 중괄호로 감싸져있다. 괄호를 이용해 파라미터를 정의하고 -> 을 이용해 반환 타입을 명시한다. "in" 키워드를 이용해 실행 코드와 분리한다. func sumFunction(a: Int, b: Int) -> Int { ..