• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Swift-枚举enum理解

原作者: [db:作者] 来自: [db:来源] 收藏 邀请
//定义一个枚举
//枚举的语法,enum开头,每一行成员的定义使用case关键字开头,一行可以定义多个关键字
enum CompassPoint {
    case North
    case South
    case East
    case West
}
//多成员也可以出现在一行上,用逗号分开
//原始值可以是字符串,字符,或任何整数或浮点数类型。每个原始值必须在它的枚举中唯一声明。当整数被用于原始值,如果其他​​枚举成员没有值时,它们自动递增。
enum CompassPoint1:Int {
    case North = 1,South,East,Weet
}
var dir = CompassPoint1(rawValue: 1)
var dirNum = CompassPoint1.South.rawValue


//使用枚举
var direction = CompassPoint.East
//再次修改时可以不指定枚举,而可以只使用.引用
direction = .North
//注意:不像C和Objective-C,Swift枚举成员在创建时不分配默认整数值。在上面的例子CompassPoints中North,South,Eath,West不等于隐含0,1,2和3,而是一种与CompassPoint明确被定义的类型却各不相同的值。
func test(dir:CompassPoint) -> CompassPoint {
    return dir
}

test(CompassPoint.East)

//可以使用单个枚举值匹配switch语句

var myDirection = CompassPoint.East
myDirection = .East


switch myDirection {
case .North:
    print("Lots of planets have a north")
case .South:
    print("Watch out for penguins")
case .East:
    print("Where the sun rises")
case .West:
    print("Where the skies are blue")
}
//以上代码可以这样理解:你可以理解这段代码:“考虑directionToHead的价值。当它等于North,打印“Lots of planets have a north”。当它等于South,打印“Watch out for penguins”等等。正如控制流所描述,Switch语句考虑枚举的成员,如果省略了West时,这段代码无法编译,因为它没有考虑CompassPoint成员的完整性。Switch语句要求全面性确保枚举成员,避免不小心漏掉情况发生。当它不需要为每一个枚举成员都匹配的情况下,你可以提供一个默认default分支来涵盖未明确提到的任何成员:

switch myDirection{
case .West:
    print("East")
default:
    print("other")
}

 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
swift2.0计算圆面积发布时间:2022-07-13
下一篇:
《SwiftbyTutorials》学习笔记(第一章)发布时间:2022-07-13
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap