클로저 [ Closure ]
: 익명함수
- 클로저 표현식은 독립적인 코드 블록이다.
형식
{ ( <매개변수 이름> : <매개변수 타입>, ... ) -> <반환 타입> in
// 클로저 표현식 코드
}
예제
- 일반 함수 표현 -
func add(x: Int, y: Int) -> Int {
return(x+y)
}
print(add(x:1,y:2))
실행결과
// 3
- 클로저 표현식 -
let add1 = { (x: Int, y: Int) -> Int in
return(x+y)
}
print(add1(1, 2))
실행결과
// 3
가감승제 함수 클로저 표현식으로 바꾸어보기 예제
예제 1
예제 2
예제 3
예제 4
클로저 축약 표현 예제
- 클로저 -
result = math(x: 10, y: 20, cal: {(val1: Int, val2: Int) -> Int in
return val1 + val2
})
print(result)
- 클로저 : 리턴형 생략 -
result = math(x: 10, y: 20, cal: {(val1: Int, val2: Int) in
return val1 + val2
})
print(result)
- 클로저 : 매개변수 생략, 단축인자 사용 -
result = math(x: 10, y: 20, cal: {
return $0 + $1
})
print(result)
- 클로저 : return 생략 -
result = math(x: 10, y: 20, cal: {(
$0 + $1
})
print(result)
후행 클로저 [ Trailing Closure ]
: 클로저가 함수의 마지막 argument라면 마지막 매개변수 이름을 생략한 후 함수 소괄호 외부에 클로저를 구현할 수 있다.
클로저 -> 후행 클로저 예제
- 클로저 -
result = math(x: 10, y: 20, cal: {(val1: Int, val2: Int) -> Int in
return val1 + val2
})
print(result)
- 후행 클로저 -
result = math(x: 10, y: 20) {(val1: Int, val2: Int) -> Int in
return val1 + val2
}
print(result)
- 후행 클로저 : 리턴형 생략 -
result = math(x: 10, y: 20) {(val1: Int, val2: Int) in
return val1 + val2
}
print(result)
- 후행 클로저 : 매개변수 생략, 단축 인자 사용 -
result = math(x: 10, y: 20) {
return $0 + $1
}
print(result)
- 후행 클로저 : return 생략 -
result = math(x: 10, y: 20) { $0 + $1 }
print(result)
강의 출처 : https://www.youtube.com/channel/UCM8wseo6DkA-D7yGlCrcrwA
'2022_iOS 앱 개발자 워크숍 > 1, Swift 문법 복습' 카테고리의 다른 글
Swift : Property [ 프로퍼티 ] (0) | 2022.01.06 |
---|---|
Swift : 클래스 (0) | 2022.01.06 |
Swift : 함수3 [ 함수를 매개변수, 리턴 값으로 사용 ] (0) | 2022.01.05 |
Swift : inout 매개변수 (0) | 2022.01.05 |
Swift : 가변 매개변수 (0) | 2022.01.05 |
댓글