VesselWheel

클로저(Closure): Code Block 본문

Xcode Study

클로저(Closure): Code Block

JasonYang 2023. 10. 19. 13:11

/*

 클로저(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