เราใช้ Enum ในการสร้ง Type ใหม่ของ ของที่เกี่ยวข้องกัน ที่มักเป็น Set จำกัดเพื่อที่เราจะไม่ต้อง hardcode เป็น String หรืออื่น ๆ เพื่อความปลอดภัยในการเขียนโค้ด เช่น เรามี enum ที่ใช้ในการระบุประเภทการชำระเงินที่ระบบรองรับ
enumPaymentType{casechequecasecreditCard}
โดยทั่วไป ภาษาอื่นจะมี Enum ที่ใช้ในการแยกประเภทเท่านั้น และมี Int ในการระบุ order หรือใช้ระบุ case enum เอง แต่ใน Swift เราสามารถที่จะกำหนดให้มี raw value ของ Enum สามารถเก็บเป็น IntString หรืออื่น ๆ ได้ เช่น
enum PaymentType {
case cheque(issuer:String)
case creditCard(number:String)
var description: String {
switch self {
case let .cheque(issuer): return "Cheque issued by \(issuer)"
case let .creditCard(number): return "Credit card number \(number)"
}
}
}
PaymentType.cheque(issuer: "ABC").description
// Cheque issued by ABC
enum PaymentType {
case cheque(issuer:String)
case creditCard(number:String)
var description: String {
switch self {
case let .cheque(issuer): return "Cheque issued by \(issuer)"
case let .creditCard(number): return "Credit card number \(number)"
}
}
func description(with name: String) -> String {
return String(format: "Name: %@, Type: %@", name, self.description)
}
}
PaymentType.cheque(issuer: "ABC").description(with: "Pakornpat")
enum TapSwitch {
case on
case off
var description: String {
switch self {
case .on: return "current is on"
case .off: return "current is off"
}
}
mutating func toggle() {
switch self {
case .on:
self = .off
case .off:
self = .on
}
}
}
var state = TapSwitch.on
state.toggle()
state.description