SWfit学习4:枚举和结构体
发布时间:2020-12-15 07:20:26 所属栏目:百科 来源:网络整理
导读:** 枚举 ** swift的枚举类型是一系列的值,不同于c语言中枚举类型是整数类型。每个枚举定义了个新的类型 使用 enum 创建枚举——注意 Swift 的枚举可以关联方法 enum Rank :Int{ case Ace = 1 case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten case Jack,
** 枚举** swift的枚举类型是一系列的值,不同于c语言中枚举类型是整数类型。每个枚举定义了个新的类型 使用 enum 创建枚举——注意 Swift 的枚举可以关联方法 enum Rank:Int{
case Ace = 1
case Two,Three,Four,Five,Six,Seven,Eight,Nine,Ten
case Jack,Queen,King
func simpleDescripetion() -> String{
switch self {
case .Ace:
return "ace"
case .Jack:
return "jack"
case .Queen:
return "queen"
case .King:
return "king"
default:
return "not find"
}
}
}
关于switch语句,必须是完备的。如上所示,如果没有把所有case写完整,那么就需要加上default语句。如上代码,会进入default语句。如果所有case都写完整了,那么可以不需要default语句。另外,不同与c语言等,swift语言的switch语句的case会自动break。 关联枚举类型 enum OtherType{
case Point(Int,Int)
case Name(String)
}
var type:OtherType = .Name("xd")
type = .Point(4,9)
switch type{
case .Point(let iX,let iY):
println("point X:(iX) Y: (iY)")
case .Name(let strName):
println("name:(strName)")
}
初始值设定。初始值类型必须要一致 enum InitalSettingType:Character{
case CharacterX = "a"
case CharacterY = "r"
}
enum InitalIntType:Int{
case Monday = 1,Tuesday,Wednesday,Thursday,Friday,Saturday,weekday
}//Int类型枚举初始值会自动+1.类似c语言枚举
如果要访问枚举类型的初始值,使用rawValue方法。 let initValue = InitalIntType.Tuesday.rawValue
println("(initValue)")
使用init(rawValue:)反向查找枚举类型值。 let emueValue = InitalIntType.init(rawValue:4)
** 结构** Swift 使用 struct 关键字创建结构。结构支持构造器和方法这些类的特性。 结构和类的最大区别在于:结构的实例按值传递(passed by value),而类的实例按引用传递(passed by reference) struct Card {
var rank:Rank
func simpleDescripetion() -> String{
return "the (rank.simpleDescripetion()) "
}
}
let threeOfSpades = Card(rank: .Three)
let threeOfSpadesDescription = threeOfSpades.simpleDescripetion()
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |