728x90
SMALL

클로저란?
스위프트의 함수 정의 구문에서 목적에 따라 불필요한 부분을 제거
최대한 단순한 형태로 일회용 함수 역할을 하기 위한 객체
아래 코드에서 animations 매개변수로 exec의 함수를 받음
근데 exec라는 함수는 한 번만 사용되는 일회용 함수임
UIView.animate(withDuration: TimeInterval(0.15), animations: exec)
이와 같이 일회용 함수를 매번 만들기 귀찮기 때문에
animations의 타입과 동일한 경우라면
exec 함수 대신 클로저를 넣음
클로저 만들기
func add(value1: Int, value2: Int) -> Int {
let result = value1 + value2
return result
}
이미 함수라는 것을 알고 있기 때문에
"func" 키워드 삭제
add(value1: Int, value2: Int) -> Int {
let result = value1 + value2
return result
}
일회용 함수 이기 때문에
재사용을 위한 함수명은 생략 가능
(value1: Int, value2: Int) -> Int {
let result = value1 + value2
return result
}
매개변수 타입을 통해 함수 형식이 이미 정의 되어 있다면
매개변수 타입과 반환 타입 생략 가능
(value1, value2) {
let result = value1 + value2
return result
}
입력받는 인자값의 순서가 함수 타입에 정의되어 있으므로
매개변수 자체를 생략, 대신 매개변수에 $0, $1로 표현
{
let result = $0 + $1
return result
}
여기서 결과값만 반환하면 되기 때문에
return 구문 생략 가능
주로 아래 코드와 같이 실무에서 사용
{
$0 + $1
}
아래 코드서부터 사실 클로저로 사용함
(value1: Int, value2: Int) -> Int {
let result = value1 + value2
return result
}
{
(value1: Int, value2: Int) -> Int in
let result = value1 + value2
return result
}
728x90
LIST
'Swift' 카테고리의 다른 글
| 클로저 3편 (0) | 2024.02.10 |
|---|---|
| 클로저 2편 (2) | 2024.02.08 |
| 접근제어 (0) | 2024.02.05 |
| 인스턴스 생성 및 소멸 6편 (인스턴스 소멸) (0) | 2024.02.02 |
| 인스턴스 생성 및 소멸 5편 (함수를 사용한 프로퍼티 기본값 설정) (0) | 2024.02.01 |