swift学习03-可选类型Optional
2016-06-17 15:03
387 查看
Swift三.可选类型 optional
1.optional定义
optional是swift的一个重要特性,它为那些在编译时不能确定是否有值的的变量做了一个包装
表示一个值可能缺失的类型
optional定义了两种值:有值 + nil
swift中nil也是一种类型,但跟真实的类型不匹配不能进行赋值
swift是强类型语言
optional的用处在于提供可为nil类型的变量
2.optional语法
var optionalValue:Optional<String> = nil
var optionaValue_:String? = nil
3.optional操作
?代表这是一个可选类型,是一个语法糖,原型为 public enum Optional
有两个值
case None = nil
case Some = 有值
可选值解包
var optionalValue:String? = "hello"
print(optionalValue) //optional(“hello”)
输出为Optional包装后的string
需要用optionalValue的话则需要进行解包为
if let tempValue = optional{
//有值时进行操作
print(optionalValue) //hello
}
强制解包
! 也是一个枚举值 (枚举里面没看懂)
!的字面意思 隐式拆包 就是对 optional进行强制解包,不需要管有没有值,但是如果没有设置值的话,===nil时,会报错。所以用隐式解包时候需要慎重,确定变量一定会有值在使用,xib拖的控件就可以这么使用,因为xib加载完后一定会有值。
var optionalValue_:String! = "hello"
空合运算符
空合运算符(a ?? b)将对可选类型 a
进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。表达式 a
必须是 Optional 类型。默认值 b 的类型必须要和 a
存储值的类型保持一致。
var a = "aaaaa"
var b:String? = "bbbb"
var c = b ?? a
/*
可选类型别的用法暂时不知道,以后学到更多的继续更新,因为现在只学到了函数,有不同意见或者指导我的请添加QQ 540811253
万分感谢!!!
*/
1.optional定义
optional是swift的一个重要特性,它为那些在编译时不能确定是否有值的的变量做了一个包装
表示一个值可能缺失的类型
optional定义了两种值:有值 + nil
swift中nil也是一种类型,但跟真实的类型不匹配不能进行赋值
swift是强类型语言
optional的用处在于提供可为nil类型的变量
2.optional语法
var optionalValue:Optional<String> = nil
var optionaValue_:String? = nil
3.optional操作
?代表这是一个可选类型,是一个语法糖,原型为 public enum Optional
有两个值
case None = nil
case Some = 有值
可选值解包
var optionalValue:String? = "hello"
print(optionalValue) //optional(“hello”)
输出为Optional包装后的string
需要用optionalValue的话则需要进行解包为
if let tempValue = optional{
//有值时进行操作
print(optionalValue) //hello
}
强制解包
! 也是一个枚举值 (枚举里面没看懂)
!的字面意思 隐式拆包 就是对 optional进行强制解包,不需要管有没有值,但是如果没有设置值的话,===nil时,会报错。所以用隐式解包时候需要慎重,确定变量一定会有值在使用,xib拖的控件就可以这么使用,因为xib加载完后一定会有值。
var optionalValue_:String! = "hello"
空合运算符
空合运算符(a ?? b)将对可选类型 a
进行空判断,如果 a 包含一个值就进行解封,否则就返回一个默认值 b。表达式 a
必须是 Optional 类型。默认值 b 的类型必须要和 a
存储值的类型保持一致。
var a = "aaaaa"
var b:String? = "bbbb"
var c = b ?? a
/*
可选类型别的用法暂时不知道,以后学到更多的继续更新,因为现在只学到了函数,有不同意见或者指导我的请添加QQ 540811253
万分感谢!!!
*/
相关文章推荐
- swift简单瀑布流的实现
- 深入探究Swift数组背后的协议、方法、拓展(转)
- swift 二维码扫描
- 真机调试Swift项目(47K),存储空间占了16M!!!
- 初学swift
- [Swift 开发] 使用闭包传值(typealias)
- swift第一季基础语法
- Oc与swift区别
- swift2.0 学习笔记Sixteen
- iOS动画学习笔记3 Video Tutorial iOS Animation with Swift - Ray Wenderlich
- [IOS/Swift]'Project Name' was compiled with optimization
- swift学习笔记2——函数、闭包
- Swift-基础-6
- Swift-基础-5
- Swift-基础-4
- 【Swift】如何将UUID设置成系统唯一标识
- Swift 3.0 on Ubuntu 15.10
- swift学习02-元组tuple
- [swift学习之十七]RunTime练习二
- MapKit之MKMapView的基本认识和使用(Swift)