Enumeration은 여러 값을 미리 정의하여 직접 타이핑하지 않고 사용할 수 있도록 해줍니다
//defining an enumeration type
//enum Number {
// case one
// case two
// case three
//}
// declaring the enum values in one statement
//enum Number {
// case one, two, three
//}
// var myNumber: Number = Number.one
// assigning a new value to variable of type Number
// myNumber = .two
//using a switch with an enum type
enum Number {
case one
case two
case three
}
var myNumber = Number.two
switch myNymber {
case .one:
print("The number is 1")
case .two:
print("The number is 2")
}
다음과 같이 사용할 수 있다.
//MARK: HTTPMethod
enum HTTPMethod {
case get([URLQueryItem])
case post(Data?)
case delete(Data?)
var name: String {
switch self {
case .get:
return "GET"
case .post:
return "POST"
case .delete:
return "DELETE"
}
}
}
//MARK: 가져올 리소스 형태를 만듬
struct Resource<T: Codable> {
let url: URL
var method: HTTPMethod = .get([]) // 열거형 get을 사용한다.
var modelType: T.Type // 가져올 데이터의 타입
}
enumeration의 case들은 기본 값들을 가질 수 있는데 이 값들을 raw value 라고한다.
Swift는 모든 경우에 0부터 시작하는 기본값을 할당한다, 하지만 이 우리는 각각의 값들을 직접 지정할 수 있다.
//assigning raw values to enum values
enum Number: String {
case one = "Number One"
case two = "Number Two"
case three = "Number Three"
}
var muNumber = Number.one
//reading raw values
enum Number: String {
case one = "Number One"
case two = "Number Two"
case three = "Number Three"
}
var myNumber = Number.one
print("The value is \(myNumber.rawValue)")
rawValue를 이용하여 case 문으로 저장된 값으로 저장된 값을 읽을 수 있다.
추가로 해당 값을 다음과 같이 조건에 따라서 실행을 다르게 할 수 있다.
'SwiftUI' 카테고리의 다른 글
Range (0) | 2023.11.05 |
---|---|
Memory Management (0) | 2023.11.05 |
Generic Functions <T> (0) | 2023.10.31 |
Navigation Toolbar (0) | 2023.10.31 |
List (0) | 2023.10.30 |