Swift 기초문법 - 11. 매개변수로서 클로저

정성윤·2023년 7월 10일
0

Swift 이론

목록 보기
13/64

매개변수로서 클로저를 사용하는 것은 Swift에서 강력한 기능 중 하나입니다.

  1. 매개변수로 클로저 타입 정의하기 : 함수 매개변수에 클로저를 전달하기 위해서는 해당 매개변수의 타입으로 클로저를 명시적으로 정의해야 합니다. 클로저 타입은 매개변수 타입으로 '(매개변수 타입) -> 반환타입' 형태로 작성됩니다.
    ex) (Int) -> String 타입의 클로저는 하나의 Int 매개변수를 받아 String 타입의 값을 반환

  2. 함수 내에서 클로저 실행하기 : 매개변수로 전달된 클로저는 함수 내에서 실행될 수 있습니다. 함수 내에서 클로저를 호출하거나, 다른 변수에 할당하여 나중에 실행할 수 있습니다. 매개변수로 전달된 클로저를 실행하기 위해서는 매개변수 이름 뒤에 소괄호 '()'를 붙여 호출합니다

func calculate(a: Int, b: Int, operation: (Int, Int) -> Int) -> Int {
    return operation(a, b)
}

	let addition: (Int, Int) -> Int = { (a, b) in
 	   return a + b
	}

	let subtraction: (Int, Int) -> Int = { (a, b) in
	    return a - b
	}

	let result1 = calculate(a: 5, b: 3, operation: addition) // 8
	let result2 = calculate(a: 10, b: 4, operation: subtraction) // 6

클로저가 매개변수이면 블록으로 처리가 가능합니다.

매개변수로서 데이터를 반환하는 클로저


매개변수로서 데이터를 여러개 반환하는 클로저


first(변수)를 쓰고 싶지 않을때, _ 언더바 사용

함수 안에 클로저 completion을 받기 싫을 때 옵셔널 선언

참고(출처) : 개발하는 정대리, 야곰(Swift 5)

profile
이유있는 스위프트 개발자

0개의 댓글