일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Xcode
- weatherKit
- AnyObject
- 한국어 개인정보처리방침
- 클로저의 캡슐화
- Protocol
- UIAlertAction
- dispatchsource
- weak var
- MKMapViewDelegate
- 영문 개인정보처리방침
- RunningTimer
- 러닝기록앱
- 러닝타이머
- font book
- xcode로 날씨앱 만들기
- CoreLocation
- Startign Assignments
- Required Reason API
- WeatherManager
- CLLocationManagerDelegate
- Timer
- UICollectionViewFlowLayout
- App Store Connect
- 서체관리자
- SwiftUI Boolean 값
- swift
- 단일 책임원칙
- addannotation
- MKMapItem
- Today
- Total
VesselWheel
클로저(Closure): Code Block 본문
/*
클로저(Closure): Code Block
code block 을 변수에 할당할 수도 있고
매개변수(parameter)로 전달할 수도 있고
실행할 수도 있음
통신: 요청(request)과 응답(response)처리
UI이벤트: ex) click 이벤트 발생할 때 실행됨
클로저 만드는 방법(형식)
{ (parameter: type) -> return type in
실행 code (statement)
}
*/
// 일반 변수
var number: Int = 11
// 일반 함수
func add(n1:Int, n2:Int) -> Int{
return n1 + n2
}
print("add(n1:11, n2:22) : \(add(n1:11, n2:22))")
// 클로저 : code block 을 만듬
var sum: (Int, Int) -> Int = {
(n1: Int, n2: Int) -> Int in
return n1 + n2
}
print("sum(33, 44) : \(sum(33, 44))")
// 일반함수의 parameter 에 클로저변수(code block) 전달하기
func calculate(n1:Int, n2:Int, funct1:(Int, Int) -> Int) -> Int{
// return funct1(n1, 50) <-- 72
return funct1(n1, n2)
}
// calculate() 함수 호출하기
var result = calculate(n1:22, n2:66, funct1: sum)
print("result : \(result)")
// 클로저 함수 2
// 일반함수
func displayName(firstName: String, lastName: String){
print("\(lastName) \(firstName)")
}
displayName(firstName: "봉길", lastName: "윤")
// 클로저 함수
var studentName: (String, String) -> Void = {
(firstName: String, lastName: String) -> Void in
print("\(lastName) \(firstName)")
}
studentName("주몽", "고")
// 일반함수를 클로저함수 처럼 변수에 할당하기
// 미리 일반함수를 선언해 놓아야 함
// 아래와 같이 하면 studentName2 라는 이름으로
// displayName 이라는 함수를 호출할 수 있음
var studentName2: (String, String) -> Void =
displayName(firstName:lastName:)
// 호출할 때, argument 만 넣어주면 됨 (parameter 이름을 적지 않음)
studentName2("흥민", "손")
'Xcode Study' 카테고리의 다른 글
구조체 배열 (0) | 2023.10.19 |
---|---|
클로져의 변형 (0) | 2023.10.19 |
Collection : Array, List (1) | 2023.10.19 |
Xcode 자동 들여쓰기 //Re-Intent(Ctl + i or cmd ][ ) (0) | 2023.10.19 |
cocoa pods 사용법과 터미널 내용 (1) | 2023.10.18 |