文档章节

08-Swift 枚举

i
 iOS_Aaron
发布于 2015/01/22 18:09
字数 393
阅读 3
收藏 0

01-枚举的基本使用

enum 方向 {
    case 东
    case 西
    case 南
    case 北
}

var 旅行方向 = 方向.南

旅行方向 = .北

enum 行星 {
    case 水星,金星,地球,火星,木星,土星,天王星,海王星
}

let 宇宙旅行起点 = 行星.地球
let 宇宙旅行终点 = 行星.火星

02-switch语句匹配枚举值

enum 方向 {
    case 东
    case 西
    case 南
    case 北
}

var 旅行方向 = 方向.南

switch 旅行方向 {
case .东:
    println("向东旅行")
case .西:
    println("向西旅行")
case .南:
    println("向南旅行")
case .北:
    println("向北旅行")
}

enum 行星 {
    case 水星,金星,地球,火星,木星,土星,天王星,海王星
}

let 宇宙旅行终点 = 行星.火星

switch 宇宙旅行终点 {
case .土星:
    println("有美丽的光环")
default:
    println("没有光环")
}

03-枚举的关联值

enum 条形码 {
    case 一维码(Int, Int, Int, Int)
    case 二维码(String)
}

var 某商品 = 条形码.一维码(1, 12345, 45678, 9)

某商品 = 条形码.二维码("奶茶")

switch 某商品 {
case let .一维码 (系统位, 厂商位, 商品位, 校验位):
    println("\(系统位) \(厂商位) \(商品位) \(校验位)")
case let .二维码 (商品名称):
    println(商品名称)
}

04-枚举的原始值

enum 行星: Int {
    case 水星 = 1,金星,地球,火星,木星,土星,天王星,海王星
}

let 某行星 = 行星.天王星
某行星.rawValue

let 行星位置 = 6

if let 临时行星 = 行星(rawValue: 行星位置) {
    switch 临时行星 {
    case .土星:
        println("有美丽的光环")
    default:
        println("没有光环")
    }
} else {
    println("位置\(行星位置)没有行星")
}


© 著作权归作者所有

上一篇: 01-Swift 基础
下一篇: 07-Swift 闭包
i
粉丝 0
博文 8
码字总数 5947
作品 0
海淀
私信 提问
简述如何从Objective-C到Swift过渡

本篇文章简述了如何从Objective-C向Swift过渡。话不多说,开门见山。 注意:本文讨论的开发环境为Xcode 6 beta 2版本。 单一文件结构 VS 接口-实现 最值得一提的一大改动便是在Objective-C中...

牵着蜗牛去西藏
2014/11/04
195
0
Java枚举 - fastjson对enum的处理

目的 1、枚举值转换成完全的json; 2、对象中的枚举成员完全转换成json; 3、枚举类的全部值转换成json; 枚举定义 public enum SongsEnum { } 一、枚举值转换json 期望结果:SongsEnum.SAF...

泉天下
2018/09/06
1K
0
swift4.1 系统学习十二 枚举

/* 枚举 swift的枚举类型也是一个很强大的类型,与其他语言相比,swift中枚举应用更加灵活、广泛。 例如: 像C或者OC中都有枚举类型,但是他们的枚举类型默认为整数类型int兼容。 而在swift...

小曼Study
2018/10/11
0
0
Swift 5.0 值得关注的特性:Handle unknown values using "@unknown default"

把 swift 升级到 5.0 的时候相信大家一定会遇到建议添加 的警告: 解决的两个问题 未来增加新的 case 后不会影响原有代码的编译 如果 switch 语句中覆盖了枚举的每个 case,那么未来这个枚举...

没故事的卓同学
04/20
0
0
Swift 冷门语法知识

本来这篇文章的标题是“如何写一个不安全的构造器”,但后面查资料的时候又发现了一些很好玩的东西,就一次性写成一篇出来,跟大家分享一下 Swift 里的几个 best pratice: 带关联值的 Enum...

四娘
2017/08/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

32位与64位Linux系统下各类型长度对比

64 位的优点:64 位的应用程序可以直接访问 4EB 的内存和文件大小最大达到4 EB(2 的 63 次幂);可以访问大型数据库。本文介绍的是64位下C语言开发程序注意事项。 1. 32 位和 64 位C数据类型...

mskk
26分钟前
6
0
Vue 实现点击空白处隐藏某节点(三种方式:指令、普通、遮罩)

在项目中往往会有这样的需求: 弹出框(或Popover)在 show 后,点击空白处可以将其 hide。 针对此需求,整理了三种实现方式,大家按实际情况选择。 当然,我们做项目肯定会用到 UI 框架,常...

张兴华ZHero
33分钟前
7
0
SpringBoot激活profiles你知道几种方式?

多环境是最常见的配置隔离方式之一,可以根据不同的运行环境提供不同的配置信息来应对不同的业务场景,在SpringBoot内支持了多种配置隔离的方式,可以激活单个或者多个配置文件。 激活Profi...

恒宇少年
34分钟前
8
0
PDF修改文字的方法有哪些?怎么修改PDF文件中的文字

PDF修改文字一直以来都是一个难以解决的问题,很多的办公族在办公的时候会有修改PDF文件中的文字的需要,可是PDF文件一般是不能进行编辑和修改的,难道就没有什么办法解决这个问题了嘛?不要...

趣味办公社
37分钟前
5
0
企业组织中采用服务网格的挑战

作者:Christian Posta 译者:罗广明 原文:https://blog.christianposta.com/challenges-of-adopting-service-mesh-in-enterprise-organizations/ 编者按 本文作者介绍了企业组织采用服务网...

jimmysong
47分钟前
8
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部