본문 바로가기
Swift 문법

스위프트 클로저 (swift closures) 알아보기 3

by 정석 지향 2020. 8. 18.
반응형

스위프트 클로저 알아보기 세 번째 시간입니다.

 

클로저의 타입이 정해져 있다면 파라미터의 타입을 생략할 수 있습니다.

 

var closuresHello5 : (String, String) -> String = { (first: String, second: String) in

   "\(first + second) third !!!"

}

 

var closuresHello6 : (String, String) -> String = { (first, second) in

   "\(first + second) third !!!"

}

 

빨간색 부분을 잘 보시면  (first: String, second: String) -> (first, second)

이렇게 바뀐 걸 알 수 있습니다.

앞에서 미리 매개변수 타입이 (String, String)으로 알 수 있기 때문에 생략이 가능합니다.

 

클로저의 타입이 정해져 있다면 인자 이름을 축약할 수 있습니다. (Shortand Arguments Names)

var closuresHello7 : (String, String) -> String = { return $0 + $1 } 

var closuresHello8 : (String, String) -> String = { $0 + $1 }

* 2탄에서 배웠던 리턴할 내용이 한 줄이라면 return 생략 가능

 

$0, $1은 각각 첫 번째 파라미터의 실제 사용될 때의 (값 = 인자),  두 번째 파라미터의 실제 사용될때의 (값 = 인자)를 의미합니다. 

* 실제 사용되는 값이기 때문에 파라미터가 아닌 인자로 표현하였습니다.

 

 

반응형