swift-可选值
2016-05-19 11:16
295 查看
swift的nil和OC有些不一样,OC只有对象可以用nil,swift基础类型(整形,浮点)没有值时也是nil,当初始化的时候,swift可以没有初始值的,产生了可选值Optional。
定义可选值很容易,只需在类型的后面加一个?就行。例如:var value:Int? 一个Optional值和一个非Optional值的区别,Optional值未经初始化虽然为nil,但普通变量连nil的没有。 var value:Int? print(value) //nil var value:Int print(value) //直接报错 提取可选类型的值(强制解析) Optional值不能被直接使用,因为可选值有两种状态,分别是有值和没值,所以我们需要告诉编译器是否有值 强制解析可选类型的值,只需在变量后加!就可以。 var value:Float? var value2:Float = value! print(value2) 注意:如果value没有值,会报运行时错误。 当我不知道 Optional是否有值,该怎么操作? 如果值不为nil,再执行后面的代码。 var value:Int? = 10 if let tmpValue = value { print(tmpValue) // var result :Int = value! // // var result2 :Int = value! // // print(value) // // print(result) } 当你不确定可选值是否有值是,尽量使用if来判断一下 let url = NSURL(string: "www.baidu.com") if let tmpUrl = url { NSURLRequest(URL: tmpUrl) } 可选项:??,他可以对nil进行快速判断,??后面的值是参与计算的 var num:Int? let result :Int = num ?? 0 print(result)
相关文章推荐
- swift-元组
- swift-分支
- swift-运算符
- swift 数组、字典、集合、结构体、枚举——swift学习(四)
- Swift-常量变量
- Swift开发:VVDocumenter-Xcode-master插件不能用 --- 已经解决
- Swift (if while)
- 用RxSwift实现一个UITableView
- Swift与OC之间的选择
- swift中解决闭包循环引用的几种方式
- swift没有了BlocksKit怎么办?
- Swift中?和!的区别
- Swift专题讲解十五——类型构造
- 简单谈谈OC与Swift的异同
- Swift中的内存管理
- swift 2.2 语法 (中)
- [Swift]学习笔记-可选类型/可选链
- Swift带振动效果的UITextField
- swift 学习笔记之闭包
- swift 对字符串的一些处理