关闭

Swift中枚举enum讲解

129人阅读 评论(0) 收藏 举报
分类:

需要定义一组具有相关性的数据时,往往会使用到枚举类型,枚举类型可由成员、属性、下标脚本和方法组成;枚举类型和类的构成基本相似,不同在于枚举类型比类多了成员。

枚举类型可以分为两种:没有指定数据类型(任意类型的枚举类型)和指定数据类型;定义如下

指定数据类型
enum Person:String{
}
没有指定数据类型
enum Person{
}

一.定义枚举类型的成员

case关键字不能省略,如果在一个枚举类型中定义多个成员,可以将这多个成员写在同一行:

enum Person{
    case name,age,address
}

1.任意类型的枚举成员

  • 不能指定原始值
enum Person{
    case age=1
    case name="wflyto"
}
//错误,不能指定原始值
  • 可以定义不同类型的成员
enum Person{
    case age(Int)
    case name(String)
}
  • 可以不定义成员
enum Person{
}

2.指定数据类型的枚举成员

  • 没有强制要求指定原始值

二.枚举类型中成员的原始值

enum Direction:Int{
    case North=0
    case South=1
    case East=2
    case West=3
}

注意:上述定义的Int是成员的原始值(rawValue)的数据类型;而0、1、2、3代表的是成员的原始值,而并非成员。

1.通过成员访问原始值(使用rawValue属性)

enum Person:String{

    case name="wflytoc"
    case address="JiangSu"

}

print("\(Person.name.rawValue)")

2.通过原始值获取成员

通过构造器枚举类型名(rawValue:)

enum Person:String{

    case name="wflytoc"
    case address="JiangSu"

}

let nameRawValue=Person.name.rawValue

if let ori=Person(rawValue: nameRawValue){

    switch ori{

    case .name:
        print("name")
    case .address:
        print("address")

    }

}

三.相关值

在任意类型的枚举类型中,可以定义任意的成员,这些成员是没有值的。在实例化时,可以定义此成员的相关信息,这些信息称为相关值。

enum Person{

    case name(String)
    case age(Int)

}

let nameChoice=Person.name("wflytoc")

switch nameChoice {

case .name(let Name):
    print("\(Name)")
case .age(let Age):
    print("\(Age)")

}
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:15376次
    • 积分:598
    • 等级:
    • 排名:千里之外
    • 原创:31篇
    • 转载:6篇
    • 译文:15篇
    • 评论:1条
    最新评论