클로저의 경량 문법
클로저의 문법을 단순하게 쓸 수 있게 하는 문법
func runFuntion(closure: (Int, Int) -> Int) {
closure(1,2)
}
위의 함수는 파라미터로 받은 클로저를 실행
클로저의 파라미터로 Int 타입의 1, 2를 전달
위의 함수를 호출하려면?
아래와 같이 클로저를 완전체로 작성해야함
runFuntion(closure: { (value1: Int, value2: Int) -> Int in
return value1 + value2
})
파라미터 타입과 리턴 타입 생략 가능
위의 함수에서 파라미터 타입 (Int, Int) 와 리턴 타입 Int 생략 가능
runFuntion(closure: { (value1, value2) in
return value1 + value2
})
파라미터 이름은 shortand Argument Names로 대체
(파라미터 이름과 "in" 키워드 삭제)
runFuntion(closure: {
return $0 + $1
})
여기서 "shortand Argument Names" 은?
value1 → $0
value2 → $1
$와 index를 이용하여 파라미터에 순서대로 접근하는 방법
리턴만 남았을 때는 "return" 키워드 삭제
runFuntion(closure: {
$0 + $1
})
★ 예를 들어 return 키워드만 있는게 아니라, print 도 쓰였다면? ★
생략 안됨
함수의 마지막 파라미터가 클로저라면?
트레일링 클로저로 작성
runFuntion() {
$0 + $1
}
여기서 더 나아가 함수의 호출 구문 "( )" 안에 아무것도 없다면?
"( )" 생략가능
runFuntion {
$0 + $1
}