上一章Swift教程请查看:swift变量介绍和使用
Swift还引入了Optional可选类型,用于处理缺少值的情况,optional可选类型的意思是说“有一个值,它等于x”或者“根本没有值”。
可选的是它自己的类型,实际上是Swift新的强大功能之一,它有两个可能的值,None和Some(T),其中T是Swift中可用的正确数据类型的关联值。
这是一个可选的整数声明:
var perhapsInt: Int?
这是一个可选的字符串声明:
var perhapsStr: String?
上述声明相当于显式地将其初始化为nil,即无值:
var perhapsStr: String? = nil
让我们以下面的例子来理解选项在Swift?中是如何工作的:
var myString:String? = nilif myString != nil {
print(myString)
} else {
print("myString has nil value")
}
选项类似于在Objective-C中对指针使用nil,但它们适用于任何类型,而不仅仅是类。
强制展开如果将变量定义为可选的,那么要从该变量获取值,就必须展开它,这只是意味着在变量后面加上一个感叹号。
举个简单的例子:
var myString:String?myString = "Hello, Swift!"if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
当我们运行上述程序时,我们得到以下结果:
Optional("Hello, Swift!")
【swift optional可选类型 – Swift最新教程】现在让我们应用展开来获得变量的正确值:
var myString:String?myString = "Hello, Swift!"if myString != nil {
print( myString! )
} else {
print("myString has nil value")
}
自动展开你可以使用感叹号而不是问号来声明可选变量,这样的可选变量将自动展开,并且你不需要在变量的末尾使用任何进一步的感叹号来获得指定的值。举个简单的例子:
var myString:String!
myString = "Hello, Swift!"if myString != nil {
print(myString)
} else {
print("myString has nil value")
}
可选的绑定使用可选绑定查明可选项是否包含值,如果包含,则使该值作为临时常量或变量可用。
if语句的可选绑定如下所示:
if let constantName = someOptional {
statements
}
让我们举一个简单的例子来理解可选绑定的用法:
var myString:String?
myString = "Hello, Swift!"if let yourString = myString {
print("Your string has - \(yourString)")
} else {
print("Your string does not have a value")
}
本文介绍了optional可选类型的基本使用,包括可选类型强制展开、自动展开以及可选的绑定,这些内容在接下来的开发教程中会涉及到。
推荐阅读
- swift元组,常量和字面量 – Swift最新教程
- swift变量介绍和使用 – Swift最新教程
- swift数据类型介绍 – Swift最新教程
- swift入门基本语法 – Swift最新教程
- 六大算法设计技巧(贪婪法、分治法、动态规划、随机化算法、回溯法和分支限界法)
- 如何实现优先队列(Java使用数组实现最小堆和优先队列)
- 图论(graph theory)算法原理、实现和应用全解
- 不相交集(disjoint set)原理和实现图文详解
- 9大经典排序算法原理和实现代码详解