여태까지 우리는 () -> Void
를 "매개변수가 없고 , 아무것도 반환하지 않는다" 라는 의미로 사용해왔지만 , 클로저에서 허용되는 모든 매개변수 유형으로 ()
에 채울 수 있다.
1. 반환형 없이 이벤트만 전달하는 경우 () -> Void
2. 매개변수로서 데이터를 반환하는 클로저 (String) -> Void
Swift는 인라인 클로저에 자동으로 축약 인자 이름을 제공한다.
이 인자를 사용하면 인자 값을 순서대로 $0
, $1
, $2
등으로 사용할 수 있다. 축약 인자 이름을 사용하면 인자 값과 그 인자로 처리할 때 사용하는 인자가 같다는 것을 알기 때문에 인자를 입력받는 부분과 in 키워드 부분을 생략 할 수 있다.
그럼 아래와 같이 점점 단축해서 쓸 수 있다.
place in
을 작성하는 대신 Swift가 클로저의 매개변수에 자동 이름을 제공하도록 할 수 있다. 이것들은 달러기호$
로 명명된 다음 0부터
세는 숫자로 지정된다.
3. 매개변수로서 데이터 여러개를 반환하는 클로저 (String,String) -> Void
3. Completion 이벤트를 받고싶지 않은 경우
연습 )
갑자기 느낀점 :
후행 클로저애 매개변수 사용하는 것이 익숙치 않아 노트에 적어보고 playground에서 연습하고 테스트해보니 훨씬 수월해졌다!