初学swift笔记 枚举(七)
- import Foundation
- /*
- 枚举
- 语法结构
- enum 类型 {
- case 值
- }
- */
- //定义一个枚举 写法1
- enum LiuShiQun {
- case Name
- case Age
- case Sex
- case Add
- case Sub
- case Mul
- case Div
- }
- //定义一个枚举 写法2
- enum LiuShiQun_1 {
- case Add,Sub
- case Mul
- case Div
- }
- //定义一个枚举变量 写法1
- let enum_Name: LiuShiQun = .Name
- //定义一个枚举变量 写法2
- let enum_Age: LiuShiQun = LiuShiQun.Age
- // 定义枚举变量 写法3
- let enum_Add = LiuShiQun_1.Add
- //与switch结合 将闭包的各种方式加入到方法里
- //匹配的时候,如果不将枚举对所有值都case出来,switch会报错 否则末尾添加default
- func chooseMethod(op: LiuShiQun_1) ->(Double,Double) -> Double {
- switch op {
- case .Add:
- func add(a: Double,b: Double) -> Double {
- return a+b
- }
- return add
- case .Sub:
- return {(a: Double,b: Double) -> Double in return a - b}
- case .Mul:
- return {return $ * $}
- case .Div:
- return {$ / $}
- default :
- return{$ + $}
- }
- }
- //声明一个对象 调用方法,传递枚举的值 得到一个闭包类型的值
- let val_1 = chooseMethod(.Mul)
- //调用val_1闭包
- let value_2 = val_1(,)
- println(value_2)
- /*
- 枚举原始值定义
- enum Lsq: Int {
- case Add,Sub,Mul,Div
- }
- 不指定值的话,从0开始,依次 +1
- Lsq.Add.toRaw() 得到Lsq.Add的原始值 - 对应 fromRaw 将值反推 将原始值转为枚举值
- Lsq.Add.rawValue 得到Lsq.Add的原始值
- enum Lsq_1: Int {
- case Add=0,Sub=1,Mul=3,Div=4
- }
- enum Lsq_2: String {
- case Add="add",Sub="sub",Mul="mul",Div="div"
- }
- */
- enum Lsq_1: Int {
- case Add=,Sub,Mul,Div
- }
- println(Lsq_1.Add.rawValue)
- enum Lsq_2: String {
- case Add="add",Sub="sub",Mul="mul",Div="div"
- }
- println(Lsq_2.Add.rawValue)
- let op : Lsq_2? = Lsq_2(rawValue: "add")
- println(op)
- //字符串转枚举值
- func get_enums(str: String) {
- let new_op : Lsq_2? = Lsq_2(rawValue: str)
- if var temp_op = new_op {
- switch temp_op {
- case .Add:
- println("Add")
- case .Div:
- println("Div")
- case .Mul:
- println("Mul")
- case .Sub:
- println("Sub")
- default :
- println("error: \(str)")
- }
- }
- else {
- println("no")
- }
- }
- get_enums("adds")
- //枚举相关值
- //两个值关联枚举值
- enum LineSegmentDescriptor {
- case StartAndEndPattern(start : Double,end : Double)
- case StartAndLengPattern(start : Double,length : Double)
- }
- //定义一个变量 指定枚举值的两个关联值
- var lsd = LineSegmentDescriptor.StartAndEndPattern(start: , end: )
- lsd = LineSegmentDescriptor.StartAndLengPattern(start: , length: )
- //将值提取出来
- switch lsd {
- //case let .StartAndEndPattern( s, e)://switch 值绑定模式
- case .StartAndEndPattern(let s,let e)://switch 值绑定模式
- println("开始\(s) 结束\(e)")
- case .StartAndLengPattern(let s,let e)://switch 值绑定模式
- println("开始\(s) 结束\(e)")
- }
初学swift笔记 枚举(七)的更多相关文章
- 初学swift笔记 结构体(八)
import Foundation /* 和类很相似 结构体 -> 封装 属性.方法 结构体是值类型 */ //定义一个LSQ类型的结构体 关键字struct struct LSQ { var ...
- 初学swift笔记 方法(九)
import Foundation /* 方法 */ //实例方法 一定需要依附于对象 class MyPoint { var x: Double = 0.0 var y: Double = 0.0 ...
- 初学swift笔记-数组、字典、元组(三)
数组的使用.字典的使用.元组的使用 import Foundation //1.定义数组 //集合数据 数组.字典 ,,,]//常用定义 ,,,]//常用定义 ,,,]//范型定义 ,,,] arr_ ...
- 初学swift笔记运算符(二)
swift 中的运算符 import Foundation //字符类型 var char: Character = "a" char="b" println( ...
- 初学swift笔记变量的定义(一)
swift变量的定义 1 import Foundation /* 变量的定义 变量的类型是可以不用写的 var a=10 常量的定义 let修饰 */ print(a) let b= print(b ...
- 初学swift笔记 继承(十)
import Foundation /* 继承 class childClass: FatherClass{ } 优点 代码重用 缺点 增加程序的藕合度 父类的改变会影响子类 只能单继承 */ cla ...
- 初学swift笔记 函数(六)
import Foundation /* func 函数名 (参数名:参数类型) { } func 函数名 (参数名:参数类型) ->Void{ } func 函数名 (参数名:参数类型) -& ...
- 初学swift笔记 流程控制(五)
import Foundation ; i<=; i++ { println(i) } let str1="adl;fjasdfl;ouewrouqwperuadf" for ...
- 初学swift笔记字典、数组(四)
import Foundation //字典 元素顺序是无序的 //1.字典元素是键值对 (key:value) //key 一定是可哈希的 string\int\bool var dic1=[&qu ...
随机推荐
- django获取某一个字段的列表,values/values_list/flat
class Building(models.Model): corporation = models.ForeignKey('company.Corporation', verbose_name=u' ...
- postgresql创建用户
(1)内部命令create user 用户名 with superuser password '密码'; 先进入数据库后用命令\h create user 查看帮助 ...
- asp.net笔记
1. 复习 a) WebForm前后台页面(aspx, aspx.cs)文件在被访问时,会被编译成类,前台类继承于后台类 b) 被访问时,服务器会创建[前台页面类]对 ...
- SQL查询 addScalar()或addEntity()
Hibernate除了支持HQL查询外,还支持原生SQL查询. 对原生SQL查询执行的控制是通过SQLQuery接口进行的,通过执行Session.createSQLQuery()获取这个接口.该 ...
- BZOJ 3572 世界树(虚树)
http://www.lydsy.com/JudgeOnline/problem.php?id=3572 思路:建立虚树,然后可以发现,每条边不是同归属于一端,那就是切开,一半给上面,一半给下面. # ...
- WebSocket C# Demo
WebSocket 规范 WebSocket 协议本质上是一个基于 TCP 的协议.为了建立一个 WebSocket 连接,客户端浏览器首先要向服务器发起一个 HTTP 请求,这个请求和通常的 HTT ...
- SQL学习笔记——SQL初入门,Ubuntu下MySQL的安装
刚开始接触sql,于是准备在Ubuntu下学习sql,就跟着itercast的sql教程开始入门了. 下面只是我个人的记录,高手请绕道: 一. 在安装之前,我们可以用下面这个命令通过开放端 ...
- javaWeb Cache技术――OSCache(转-全)
什么是osCache? 它是:http://baike.baidu.com/view/1835163.htm?fr=aladdin OSCache使用指南 一.下载安装 OSCache是一个基于web ...
- 如何导出sqlserver中的表数据,sqlserver2008
sqlserver数据库中的表数据,我们通常想使用一下,可是怎样获取这些数据呢? 1.选择任务->生成脚本 2.选择数据库 3.设置配置,让编写数据的脚本为true 4.保存为sql 5.完成 ...
- 用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8
用于下载AD官网登录账号:User name: fuxin918@fuxin918.com Passeword: s6c0W1w8