Swift编程之枚举类型详解

2020-01-08 22:57:34丽君


//枚举值自增
enum Hour: Int{
 case One = 1
 case Two
 case Three
 case Four
 case Five
 case Six
 case Seven
 case Eight
}

var hourTest: Int = Hour.Eight.rawValue
println(hourTest) // hourTest = 8

六、枚举关联值

什么是枚举的关联值呢?从字面意思上看是给枚举成员关联一个值,没错,就是在给枚举变量赋值时,给枚举变量关联一个值。在Swift中如何做的呢?就是在声明枚举类型中的元素时使用小括号来制定关联值的类型,然后在给枚举变量赋值的时候关联一个或者多个值即可,直接看实例。

下面的代码是给iOS指定了两个String类型的关联值,在给枚举变量赋值的时候关联两个值。关联这两个值可以在Switch语句中进行使用。


//枚举的关联值
enum mobileLanguage{
 case IOS (String, String)
 case Android (String)
}

var iPhone: mobileLanguage = mobileLanguage.IOS("Objective-C", "Swift")

switch iPhone {
 case mobileLanguage.IOS(let language1, let language2):
 println("language1 = (language1), language2 = (language2)")
 
 case mobileLanguage.Android(let temp):
 println(temp);
 default:
 println("NO")
}

//输出结果:language1 = Objective-C, language2 = Swift

七、枚举函数

在Swift中的枚举是可以添加函数的,有没有眼前一亮呢。下面的代码段是在上面的关联值代码的基础上添加了一个描述函数,返回的就是当前枚举变量的枚举信息,如下代码段所示:


//枚举函数
enum mobileLanguageFun{
 case IOS (String, String)
 case Android (String)
 //定义枚举函数
 var description: String{
 switch self {
 case mobileLanguageFun.IOS(let language1, let language2):
 return "language1 = (language1), language2 = (language2)"
 
 case mobileLanguageFun.Android(let temp):
 return temp
 default:
 return ("NO")
 }

 }
}

var myMobile: mobileLanguageFun = mobileLanguageFun.IOS("objc", "swift")

println(myMobile.description) //language1 = objc, language2 = swift

以上就是本文的全部内容,希望对大家学习swift软件编程有所帮助。



注:相关教程知识阅读请移步到swift教程频道。