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)")

}

Swift详解之六----------------枚举、结构体、类

枚举、结构体、类注:本文为作者自己总结,过于基础的就不再赘述 ,都是亲自测试的结果。如有错误或者遗漏的地方,欢迎指正,一起学习。1、枚举枚举是用来定义一组通用类型的一组相关值 ,关键字enum ,ca...
  • u010586842
  • u010586842
  • 2015年08月22日 21:04
  • 1470

Swift学习之十六:枚举(Enumeration)

Swift中的枚举与C、OC中的枚举有很大的区别,增加了原来类中ft
  • woaifen3344
  • woaifen3344
  • 2014年06月09日 20:20
  • 4000

Swift 中枚举高级用法及实践

title: "Swift 中枚举高级用法及实践" date: 2015-11-20 tags: [APPVENTURE] categories: [Swift 进阶] permalink: ...
  • imxiangzi
  • imxiangzi
  • 2016年05月04日 17:07
  • 10888

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

Swift3.0-枚举(enum)和结构体(struct) /* * 1、枚举 (enum关键字) 枚举是一种基本数据类型 */ print("1、枚举") enum Toward1:In...
  • MinggeQingchun
  • MinggeQingchun
  • 2017年01月13日 12:11
  • 1410

enum枚举应用讲解

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

枚举enum的一些案例

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

mybatis Enum自定义EnumTypeHandler(自定义枚举处理器)

  • 2013年06月24日 19:06
  • 6KB
  • 下载

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

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

Java JDBC简单入门之枚举(Enum)、泛型、反射、JDBC整合

  • 2018年01月13日 17:13
  • 1.61MB
  • 下载

枚举语句enum用法详解

  • 2012年03月11日 22:05
  • 16KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Swift中枚举enum讲解
举报原因:
原因补充:

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