관리 메뉴

스윞한 개발자

Swift 기초문법 - 클로저 본문

Swift 이론

Swift 기초문법 - 클로저

스윞남 2024. 1. 23. 01:11
728x90
반응형
SMALL

클로저!

 

이번 포스팅은 Swift 기초문법 클로저편 입니다!

 

클로저(Closure)는 Swift에서 함수와 유사한 개념으로, 일급 객체로서 사용될 수 있는 코드 블록입니다.
클로저는 코드를 캡슐화하여 변수나 상수에 저장하거나 함수의 매개변수로 전달할 수 있습니다. 이를 통해 코드의 재사용성과 유용성을 높일 수 있습니다.

 

{ (매개변수) -> 반환타입 in
    // 실행 코드
}
let closureName: (매개변수) -> 반환타입 = { (매개변수) -> 반환타입 in
    // 실행 코드
}

 

클로저는 변수에 할당하여 저장하거나, 함수의 매개변수로 전달할 수 있습니다. 클로저는 저장된 변수나 함수 내에서 자유롭게 호출할 수 있습니다.

 

Swift에서 사용되는 사례

1. 함수 내부에서 작은 작업을 처리하는 코드 블록을 전달할 때
2. 비동기적인 작업을 처리하는 콜백 함수로 사용할 때
3. 컬렉션의 요소를 필터링하거나 변형하는 작업에 사용할 때

 

이제 클로저에 대해 좀 더 자세히!! 봐볼게요 ㅎㅎ

 

< 매개변수로서 반환하는 클로저 >

매개변수로서 클로저를 사용하는 것은 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

 

 

728x90
반응형
LIST