ios 结构体跟枚举变量的区别_iOS学习笔记44-Swift(四)枚举和结构体

一、Swift的枚举

枚举是一系相关联的值定义的一个公共的组类型,同时能够让你在编程的时候在类型安全的情况下去使用这些值。

Swift中的枚举比OC中的枚举强大得多, 因为Swift中的枚举是一等类型,它除了可以定义枚举值外,还可以在枚举中像类一样定义属性和方法

1. 简单枚举定义和使用

//定义枚举,使用enum关键字

enum Method{

case Add

case Sub

case Mul

case Div

}

//可以连在一起写,成员之间用“,“隔开

enum CompassPoint {

case North, South, East, West

}

// 可以使用枚举类型变量或常量接收枚举值,枚举值前有个点

var method: Method = .Add

// 注意: 如果变量或常量没有指定类型, 那么前面必须加上该值属于哪个枚举类型

var point = CompassPoint.North

2. 枚举和switch语句结合进行值匹配

method = Method.Sub

// 注意: 如果case中包含了所有的值, 可以不写default

// 如果case中没有包含枚举中所有的值, 必须写default

switch(method){

case Method.Add:

print("加法")

case .Sub:// 如果变量已经指定了枚举类型,可以把前面的枚举类型省略

print("减法")

case .Mul:

print("除法")

case .Div:

print("乘法")

default:

print("都不是")

}

3. 枚举的原始值

OC中枚举的本质就是整数,所以OC中的枚举是有原始值的,默认是从0开始,而Swift中的枚举默认是没有原始值的,但是可以在定义时告诉系统让枚举有原始值

枚举定义原始值:

//定义枚举类型为Int类型,默认从0开始,后面逐一加一

enum CompassPoint: Int {

case North, South, East, West

}

//定义枚举类型为Int类型,从指定值开始,后面逐一加一

enum Movement: Int {

case Left = 5, Right, Top, Bottom

}

//除了Int类型,Swift枚举更加强大,还可以定义为Double、String等

//但是如果指定除Int的其他类型,需要给所有枚举值赋值

enum Method: String {

case Add = "add"

case Sub = "sub"

case Mul = "mul"

case Div = "div"

}

enum Constants: Double {

case π = 3.14159

case e = 2.71828

case φ = 1.61803398874

case λ = 1.30357

}

枚举值和原始值之间的转化:

// 获取枚举值对应的原始值

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值