반응형
스위프트 클로저 알아보기 세 번째 시간입니다.
클로저의 타입이 정해져 있다면 파라미터의 타입을 생략할 수 있습니다.
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은 각각 첫 번째 파라미터의 실제 사용될 때의 (값 = 인자), 두 번째 파라미터의 실제 사용될때의 (값 = 인자)를 의미합니다.
* 실제 사용되는 값이기 때문에 파라미터가 아닌 인자로 표현하였습니다.
반응형
'Swift 문법' 카테고리의 다른 글
스위프트 클로저 (swift closures) 알아보기 4 (0) | 2020.09.10 |
---|---|
swift filter, map, reduce 스위프트 필터,맵,리듀스 이용하기! (2) | 2020.09.10 |
스위프트 타입 캐스팅 as 업캐스팅(upcasting) as! as? 다운캐스팅(downcasting) (0) | 2020.09.10 |
스위프트 클로저 (swift closures) 알아보기 2 (0) | 2020.08.17 |
스위프트 클로저 (swift closures) 알아보기 1 (0) | 2020.08.13 |