Swift的数据类型(六)
2017-04-13 15:44
225 查看
有时我们使用一个变量或常量,它储存的值可能有也可能没有此时我们就需要将这个常量或变量设置为可选类型。使用可选类型是为了处理值可能缺失的情况。可选类型是Swift全新的数据类型,它的特点是可以值,也可以没有值,没有值额时候,就是nil。只需要在数据类型后面加上问号(?)就可以定义一个Optional(可选)类型的数据。示例代码如下:
1 | var str: String? 2 | print(str) |
这里我们只声明了str为一个可选类型的字符串,没有为它赋值。所以打印出来是nil。
1.可选绑定
可选类型可以用于判断,就是我们在程序中经常会使用到的可选绑定。可以使用 if 语句来判断一个可选的是否包含一个值。如果包含一个值,结果为 true ,否则 false。
1 | var myString:String? = nil 2 | if myString != nil { 3 | print(myString) 4 | }else{ 5 | print("myString has nil value") 6 | } |
在上述代码中,第1行代码定义了String类型的可选值myString。并初始化为nil。通过if语句对可选类型进行判断。如果myString不为空,则输出myString。否则输出myString has nil value。
这种可选类型在if或while语句中赋值并进行判断的写法,叫做可选绑定。
2.强制拆包
如果我们能确定可选类型一定有值,那么在读取它的时候,可以在可选类型的后面加一个感叹号(!)来获取该值。这种感叹号的表示方式称为可选值的强制拆包。如下代码所示:
1 | var myString:String? 2 | myString = "Hello, Swift!" 3 | if myString != nil { 4 | print(myString) 5 | }else{ 6 | print("myString has nil value") 7 | } |
Optional("Hello, Swift!")
现在我们来使用拆包获取正确的值
1 | var myString:String? 2 | myString = "Hello, Swift!" 3 | if myString != nil { 4 | print( myString! ) 5 | }else{ 6 | print("myString has nil value") 7 | } |
通过上面例子,我们看到在myString后面加上(!),完成对可选类型的拆包。
3.隐式拆包
为了能够方便地访问可选类型,我们可以将可选类型后面的问(?)换成感叹号(!),这种可选类型在拆包时在变量或常量后面不加感叹号(!)的表示方式称为隐式拆包。如下代码所示:
1 | var myString:String! 2 | myString = "Hello, Swift!" 3 | if myString != nil { 4 | print( myString) 5 | }else{ 6 | print("myString has nil value") 7 | } |
相关文章推荐
- Swift 基本数据类型
- swift入门基础知识1基本数据类型
- Swift学习笔记(四)——高级数据类型之元组详解
- Swift 数据类型
- swift - 数据和类型
- swift 初级 字符串,数据类型,元组等简单语法
- 2_Swift基本数据类型
- Swift语法精炼(1)-基础数据类型,元组,可选类型
- 跟波澜死磕Swift3基础篇③ -变量和数据类型 -第二节
- swift学习---基本数据类型
- swift学习3 数据类型的可选值 optional type
- Swift数据类型之整型和浮点型-备
- Swift组合数据类型字典数组..
- Swift学习笔记之基本数据类型-数组与字典
- Swift基本数据类型(一)
- Swift 3必看:foundation中数据引用类型改为值类型
- Swift学习笔记_数据类型_布尔类型
- 3、swift开发iOS——swift数据类型
- Swift 数据类型(三)
- 《从零开始学Swift》学习笔记(Day 71)——Swift与C/C++混合编程之数据类型映射