工作生活

swift 枚举类型

2019-07-02  本文已影响0人  sttech

关联值

enum Score{
case points(Int)
case grade(Character)
}
var score = Score.points(96)
score = .grade("A")
switch score {
case let .points(i):
print(i,"points")
case let .grade(i):
print(i,"grade")
}

eg 2

enum Data{
case digit(year :Int,mounth:Int,day:Int)
case string(String)
}
var data = Data.digit(year:2011,mounth:07 ,day:16)
data = .string("2011-07-16")
switch data {
case .digit(let year,let mounth,let day):
print(year,mounth,day)
case let .string(value):
print(value)
}

eg3

enum Passwd{
case number(Int,Int,Int,Int)
case gester(String)
}
var pwd = Passwd.gester("123456")
pwd = .number(1,1,1,1)
switch pwd {
case let .number(n1,n2,n3,n4):
print(n1,n2,n3,n4)
case let .gester(value):
print(value)
}

原始值

eg4

enum Direction :String{
case north = "north"
case south = "south"
case east = "east"
case west = "west"
} Direction 和Direction2 等价
// 这个会自动分配原始值
enum Direction2 :String{
case north,south,east,west
}

原始值

隐式原始值

递归枚举

递归枚举

以上两种枚举定义方式是一样的

上一篇 下一篇

猜你喜欢

热点阅读