일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- MKMapViewDelegate
- MKMapItem
- 단일 책임원칙
- Protocol
- CLLocationManagerDelegate
- App Store Connect
- AnyObject
- Xcode
- RunningTimer
- dispatchsource
- 서체관리자
- UIAlertAction
- 러닝타이머
- 러닝기록앱
- WeatherManager
- CoreLocation
- weatherKit
- Timer
- font book
- SwiftUI Boolean 값
- 한국어 개인정보처리방침
- addannotation
- 클로저의 캡슐화
- Startign Assignments
- swift
- Required Reason API
- UICollectionViewFlowLayout
- xcode로 날씨앱 만들기
- weak var
- 영문 개인정보처리방침
- Today
- Total
VesselWheel
클로져의 변형 본문
import UIKit
// 일반함수
func calculate(n1: Int, n2: Int, test1:(Int, Int)->Int) -> Int{
return(n1 + n2)
}
// 클로저의 변형된 형태
// 실행시 code block(클로저)을 바로 선언하는 형태
var result = calculate(n1:10, n2: 20, test1:{
(n1: Int, n2: Int) -> Int in
return n1 + n2
})
print("result : \(result)")
// type 추론을 이용해서 return type 을 생략하는 형태
result = calculate(n1: 11, n2: 22, test1: {
(n1: Int, n2: Int) /* -> Int */ in
return n1 + n2
})
print("result : \(result)")
// parameter 까지 생략하는 형태
result = calculate(n1: 33, n2: 55, test1: {
/*(n1: Int, n2: Int) -> Int in*/
// $0: 첫 번째 매개변수, $1: 두 번째 매개변수
return $0 + $1
})
print("result : \(result)")
// return 키워드까지 생략하는 형태
result = calculate(n1: 44, n2: 55, test1: {
/*(n1: Int, n2: Int) -> Int in*/
// $0: 첫 번째 매개변수, $1: 두 번째 매개변수
// code block 내에서 맨 끝 부분은 return 값으로 인식함
$0 + $1
})
print("result : \(result)")
/*
후행클로저(Trailing Closure):
함수를 소괄호로 먼저 닫은 후,
클로저를 마지막 매개변수로 선언함
*/
result = calculate(n1: 32, n2: 23){
(n1: Int, n2: Int) -> Int in
return n1 + n2
}
print("result : \(result)")
// 후행클로저에서 return type 생략 가능
result = calculate(n1: 12, n2: 53){
(n1: Int, n2: Int) /* -> Int */ in
return n1 + n2
}
print("result : \(result)")
// 후행클로저에서 매개변수 생략 가능
result = calculate(n1: 54, n2: 16){
/*(n1: Int, n2: Int) -> Int in */
return $0 + $1
}
print("result : \(result)")
// 후행클로저에서 return 키워드 생략 가능
result = calculate(n1: 72, n2: 58){
/*(n1: Int, n2: Int) -> Int in */
$0 + $1
}
print("result : \(result)")
'Xcode Study' 카테고리의 다른 글
Tuple (0) | 2023.10.19 |
---|---|
구조체 배열 (0) | 2023.10.19 |
클로저(Closure): Code Block (0) | 2023.10.19 |
Collection : Array, List (1) | 2023.10.19 |
Xcode 자동 들여쓰기 //Re-Intent(Ctl + i or cmd ][ ) (0) | 2023.10.19 |