Swift中枚举enum讲解

原创 2015年11月17日 21:35:19

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

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

指定数据类型
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)")

}

相关文章推荐

Swift3.0-枚举(enum)和结构体(struct)

Swift3.0-枚举(enum)和结构体(struct) /* * 1、枚举 (enum关键字) 枚举是一种基本数据类型 */ print("1、枚举") enum Toward1:In...

枚举enum的一些案例

  • 2014年07月18日 11:13
  • 27KB
  • 下载

enum枚举应用讲解

枚举的应用主要是,对enum类型,添加自定义的属性,增加构造方法,增加自定义方法(抽象方法),对自定义的属性维护方便 详见:参考代码示例3 1、自定义枚举,剖析枚举原理 2、使用枚举en...

C# C++ enum 枚举 例子.rar

  • 2013年03月27日 15:31
  • 2KB
  • 下载

enum枚举型

  • 2017年07月27日 10:12
  • 485B
  • 下载

Python笔记-装饰器@property、枚举类Enum

装饰器@property、枚举类Enum

enum枚举的方法

  • 2015年03月16日 21:41
  • 723B
  • 下载

枚举enum和switch 的使用

  • 2013年12月30日 11:13
  • 14KB
  • 下载

C/C++:enum-枚举量声明、定义和使用

C/C++enum-枚举量声明、定义和使用 众所周知,C/C++语言可以使用#define和const创建符号常量,而使用enum工具不仅能够创建符号常量,还能定义新的数据类型,但是必须按照...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift中枚举enum讲解
举报原因:
原因补充:

(最多只允许输入30个字)