익명함수(클로져, Closure) 이해하기
함수 | 비고 | ||
함수원본 | func 함수명 ( 파라미터명 : 자료형) -> (반환자료형) { 실행 구문 } |
보통함수 | |
1 | { ( 파라미터명 : 자료형) -> (반환타입) in 실행 구문 } | 익명함수 | |
2 | { (파라미터명) in 실행 구문 } | ||
3 | { 파라미터명 in 실행 구문 } |
위의 방식을 이용한 아래의 예제를 보시면서 이해해보세요.
함수 | 비고 | ||
함수원본 | func completeWork(completed : Bool) -> () { print ("complete : \(completed)") |
보통함수 | |
1 | { (completed: Bool) -> () in print ("complete : \(completed)") } | 익명함수 |
|
2 | { (completed: Bool) in print ("complete : \(completed)") } | ||
3 | { (completed) in print ("complete : \(completed)") } | ||
4 | { completed in print ("complete : \(completed)") } |
위와 같이 실행구문은 변함이 없으나, 함수 호출을 정의하는 부분이 많이 축약(함수명, 파라미터의 자료형 등) 됩니다.
사실 클로져에 대한 활용은 많은 예시문을 별도로 보관하고 계시다가 발췌해서 이용하거나, 기존 것을 활용해서 수정해서 사용하시면서 익히시는 것이 많은 도움이 될 것입니다. 특히, 집합 관련하여 filter 등을 활용한 예제들은 소스코드를 많이 간결하게 만들어주기 때문에 꼭 한번 찾아 보세요.
'개발자 넋두리 > 아이폰개발(Swift)' 카테고리의 다른 글
Swift 오류-this class is not key value coding-compliant for the key btnSize (1) | 2024.12.27 |
---|---|
(문제해결) swift Main.storyboard 파일명 변경시 (1) | 2023.12.22 |
[문제해결] Codale 타입에서 does not conform to protocol 'Decodable' (0) | 2023.12.20 |
Do it! 스위프트로 아이폰 앱만들기(11~12장 내비게이션/테이블 뷰 컨트롤) (1) | 2023.10.13 |
Do it! 스위프트로 아이폰 앱만들기(9~10장 페이지/탭바 컨트롤) (1) | 2023.10.11 |