Swift的数据类型(六)
2017-04-13 00:00
176 查看
有时我们使用一个变量或常量,它储存的值可能有也可能没有此时我们就需要将这个常量或变量设置为可选类型。使用可选类型是为了处理值可能缺失的情况。可选类型是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学习——A Swift Tour 数据类型
- Swift新手入门—数据类型
- swift基本数据类型
- Swift中文教程(一)基础数据类型
- swift 数据类型
- Swift简明教程一(数据类型)
- 【Swift】学习笔记(一)——初识 基础数据类型,代码风格,元组,断言
- Swift数据类型及数据类型转换
- 苹果新的编程语言 Swift 语言进阶(二)--基本数据类型
- Swift使用Cocoa中的数据类型教程
- Swift--基本数据类型(一)
- 看代码学习 Apple Swift (一) 基本数据类型
- 2 Swift数据类型
- Swift中文教程(一)基础数据类型
- [精校版]Using Swift with Cocoa and Objective-C--互用性--Cocoa数据类型
- Swift学习笔记之数据类型
- Swift--基本数据类型(二)
- Swift编程语言中文教程(一):基础数据类型
- swift基本数据类型及语法
- Swift_1_基本数据类型