일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 실습
- MVVM
- mvc
- Optional
- 반응형
- Kingfisher
- 옵셔널
- 기초문법
- 토이프로젝트
- struct
- 스트럭트
- 네트워크
- CS
- 프로토콜
- 이론
- ios
- 세종대학교
- RxSwift
- 학과별커뮤니티
- WeatherKit
- async
- swift
- uikit
- SwiftUI
- 대표
- 구름톤 유니브
- 앱개발
- collectionview
- 동시성
- GCD
- Today
- Total
스윞한 개발자
Swift 기초문법 - 클로저 본문
클로저!
이번 포스팅은 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
'Swift 이론' 카테고리의 다른 글
Swift 기초문법 - 상속 (0) | 2024.01.23 |
---|---|
Swift 기초문법 - 객체 생성자, 해제자 (0) | 2024.01.23 |
Swift 기초 문법 - 제네릭 (2) | 2024.01.23 |
Swift 기초 문법 - 클래스 vs 스트럭트(구조체) (0) | 2024.01.23 |
Swift 기초문법 - Unwrap 옵셔널 변수 (2) | 2024.01.23 |