250x250
반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- UIAccessibility
- pubspec.yaml
- Equatable
- protocol
- pubspec
- github
- Swift
- SwiftGen
- designPattern
- algorithm
- Widget
- listview
- toyproject
- dart
- Extentsion
- reetcode
- it
- GIT
- IOS
- OSLog
- COMMIT
- tip
- Leetcode
- ToDoRim
- flutter
- swiftlint
- enumerations
- keyWindow
- xcode
- basic
Archives
- Today
- Total
수니의 개발새발
[iOS/Swift/Basic] 열거형 Enumerations : 원시값 Raw Values, 연관값 Associated Values 본문
iOS - Swift
[iOS/Swift/Basic] 열거형 Enumerations : 원시값 Raw Values, 연관값 Associated Values
개발자 수니 2024. 1. 24. 19:30728x90
반응형
열거형 Enumerations
- 연관된 항목들을 묶어서 표현할 수 있는 타입
- 프로그래머가 정의해준 항목 값 외에는 추가/수정이 불가
열거형(Enumerations)을 사용하는 경우
- 제한된 선택지를 주고 싶을 때
- 정해진 값 외에는 입력받고 싶지 않을 때
- 예상된 입력 값이 한정되어 있을 때
열거형(Enumerations)의 선언
// Pay Enumerations 선언
enum Pay {
case cash // 현금
case card // 카드
case etc // 기타
case empty // 결제 종류 없음
}
// Pay Enumerations 선언 - 한 줄 버전
enum Pay {
case cash, card, etc, empty
}
열거형(Enumerations) 변수의 생성 및 변경
var userPay: Pay = Pay.empty
// 같은 타입인 Pay 내부의 항목으로만 변경 가능
userPay = .card
원시 값 Raw Values
열거형(Enumerations)은 항목의 원시 값(Raw Values)을 가질 수 있다.
원시 값(Raw Values) 지정과 사용
// Raw Values 지정
enum Pay: String {
case cash = "현금"
case card = "카드"
case etc = "기타"
case empty = "결제 종류 없음"
}
// Raw Values 사용
var userPay: Pay = .card
print("회원님의 결제 타입은 '\(userPay.rawValue)' 입니다.") // 회원님의 결제 타입은 '카드' 입니다.
원시 값(Raw Values) 자동 처리
열거형(Enumerations) 선언 시, 원시 값(Raw Values)을 지정하지 않을 경우 Swift는 원시 값(Raw Values)을 자동으로 처리
- String타입 enum
// String enum
enum Pay: String {
case cash = "현금"
case card = "카드"
case kakaopay
}
let myPay = Pay.kakaopay
print("나의 결제 타입은 '\(myPay.rawValue)' 입니다.") // 나의 결제 타입은 'kakaopay' 입니다.
- Int타입 enum
// Int enum
enum Numbers: Int {
case zero, one, two
case ten = 10
}
print("\(Numbers.zero.rawValue) - \(Numbers.one.rawValue) - \(Numbers.two.rawValue) - \(Numbers.ten.rawValue)")
// 0 - 1 - 2 - 10
원시 값(Raw Values)을 사용한 열거형(Enumerations)초기화
enum Pay: String {
case cash = "현금"
case card = "카드"
case kakaopay
}
// Raw Values를 사용한 Enumerations 초기화
var card = Pay(rawValue: "카드") // card
var kakaoPay = Pay(rawValue: "카카오 페이") // nil
연관 값 Associated Values
열거형(Enumerations)의 각 항목(case)은 연관 값(Associated Values)을 가질 수 있다.
// Associated Values을 가지는 Enumerations
enum Menu {
case set(burger: String, drink: String)
case single(burger: String)
}
// 사용
var order: Menu = Menu.single(burger: "불고기") // 불고기 버거 단품
order = .set(burger: "치즈", drink: "콜라") // 치즈 버거 + 콜라 세트
- 여러 열거형(Enumerations) 응용
enum Burger {
case bulgogi
case shrimp
case cheese
}
enum Drink {
case coke
case fanta
}
// Associated Values을 가지는 Enumerations
enum Menu {
case set(burger: Burger, drink: Drink)
case single(burger: Burger)
}
// 사용
var order: Menu = Menu.single(burger: .bulgogi) // 불고기 버거 단품
order = .set(burger: .cheese, drink: .coke) // 치즈 버거 + 콜라 세트
🙋🏻♀️ 참고
야곰, ⌜스위프트 프로그래밍: Swift5⌟, 한빛미디어(2019)
728x90
반응형
'iOS - Swift' 카테고리의 다른 글
[iOS/Swift/Basic] 열거형 Enumerations : 순환 열거형 - indirect (0) | 2024.01.26 |
---|---|
[iOS/Swift/Basic] 열거형 Enumerations : 항목 순회 - CaseIterable (2) | 2024.01.24 |
[iOS/Swift/Basic] 컬렉션형(Array, Dictionary, Set) (0) | 2024.01.23 |
[iOS/Swift/Basic] 주석과 퀵헬프(Quick Help) (0) | 2024.01.05 |
[iOS/Swift] iOS13에서 statusBarFrame 경고 해결 (0) | 2024.01.01 |
Comments