그동안 배운 enum 개념을 응용해서 iPhone enum 만들고 코드를 작성해보았다
enum iPhone:CaseIterable {
case iPhone4(SoldOut: Bool), iPhone5(SoldOut: Bool),iPhone6(SoldOut: Bool),iPhone7(SoldOut: Bool),iPhone8(SoldOut: Bool),iPhone9(SoldOut: Bool),iPhoneX(SoldOut: Bool),iPhone11(SoldOut: Bool),iPhone12(SoldOut: Bool),iPhone13(SoldOut: Bool)
static var allCases: [iPhone] {
return [.iPhone4(SoldOut: true), .iPhone5(SoldOut: true), .iPhone6(SoldOut: false), .iPhone7(SoldOut: false), .iPhone8(SoldOut: false), .iPhone9(SoldOut: false), .iPhoneX(SoldOut: false), .iPhone11(SoldOut: false), .iPhone12(SoldOut: false), .iPhone13(SoldOut: false)]
}
@available(*, unavailable)
case iPhone3(SoldOut:Bool)
case iPhone2(SoldOut:Bool)
case iPhone(SoldOut:Bool)
}
for iPhoneModel in iPhone.allCases {
print(iPhoneModel)
}
let iPhoneList = iPhone.allCases.map({ "\($0)"}).joined(separator:"...")
print(iPhoneList)
let myIphone: iPhone = iPhone.iPhone13(SoldOut: false)
switch myIphone {
case .iPhone4(SoldOut: false):
print("I have iPhone 4")
case .iPhone5(SoldOut: false):
print("I have iPhone 5")
case .iPhone6(SoldOut: false):
print("I have iPhone 6")
case .iPhone7(SoldOut: false):
print("I have iPhone 7")
case .iPhone8(SoldOut: false):
print("I have iPhone 8")
case .iPhoneX(SoldOut: false):
print("I have iPhone X")
case .iPhone11(SoldOut: false):
print("I have iPhone 11")
case .iPhone12(SoldOut: false):
print("I have iPhone 12")
case .iPhone13(SoldOut: false):
print("I have iPhone 13")
default:
print("i have not iPhone")
}
/* 출력값
iPhone4(SoldOut: true)
iPhone5(SoldOut: true)
iPhone6(SoldOut: false)
iPhone7(SoldOut: false)
iPhone8(SoldOut: false)
iPhone9(SoldOut: false)
iPhoneX(SoldOut: false)
iPhone11(SoldOut: false)
iPhone12(SoldOut: false)
iPhone13(SoldOut: false)
iPhone4(SoldOut: true)...iPhone5(SoldOut: true)...iPhone6(SoldOut: false)...iPhone7(SoldOut: false)...iPhone8(SoldOut: false)...iPhone9(SoldOut: false)...iPhoneX(SoldOut: false)...iPhone11(SoldOut: false)...iPhone12(SoldOut: false)...iPhone13(SoldOut: false)
I have iPhone 13*/
enum assosiatedValue, CaseIterable, Switch문법 활용한것이다