枚举
枚举语法
Swift中使用enum来声明枚举
enum TestEnum{
caseA,B,C,D
}
enum TestEnum2{
case A
case B
case C
case D
}
匹配枚举值
func test1(param:TestEnum){
switch param {
case.A:
print("这是枚举A")
case.B:
print("这是枚举B")
case.C:
print("这是枚举C")
case.D:
print("这是枚举D")
}
}
遍历枚举
令枚举遵循 CaseIterable 协议。Swift 会生成一个 allCases 属性,用于表示一个包含枚举所有成员的集合。
enum TestEnum5:CaseIterable{
case A,B,C,D
}
print(type(of:TestEnum5. allCases))
关联枚举
enum TestEnum4 {
case weight(Int)
case heigth (Int)
case name(String)
}
func test2(param:TestEnum4) {
switch param {
case.heigth(180):
print("height =\(180)")
case .weight(90):
print("weight = \(90)")
case .name("willem"):
print("name = willem")
default:
print("not match")
}
}
原始值
原始值可以是字符串,字符,或者任何整型值或浮点型值。每个原始值在它的枚举声明中必须是唯一的。 在原始值为整数的枚举时,不需要显式的为每一个成员赋值,Swift会自动为你赋值。 例如,当使用整数作为原始值时,隐式赋值的值依次递增1。如果第一个值没有被赋初值,将会被自动置为0。
import Cocoa
enum Month: Int {
case January = 1, February, March, April, May, June, July, August, September, October, November, December
}
let yearMonth = Month.May.rawValue
print("数字月份为: (yearMonth)。")