Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸
Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸
8.6 可选链接在类或者其他的类型中,声明的属性和变量/常量,都不可以为空Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸。为了解决这一问题,Swift提出了可选类型。通过可选类型定义的元素可以为空或者是不为空,但是如何要使用这些可选类型的值又成为一大难题。Swift接着就提出了可选链接。
可选链接可以判断请求或调用的目标(属性、方法、下标脚本等)是否为空。如果目标有值,那么调用就会成功;相反,则返回空(nil)。对于多次请求或调用的可以被链接在一起形成一个链条。Swift中的可选链接和Objective-C中的消息为空类似,但是Swift可以使用在任意的类型中使用,并且失败与否可以被检测到。以下将详细讲解可选链接的内容。
8.6.1 可选链接的实现方式Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸
可选链接其实就是使用“?”问号操作符对可选类型实现的一种运算。开发者可以在想要调用的属性、下标脚本和方法的可选值后面添加一个“?”问号来进行可选链接的定义。以下就是对于这些可选链接的定义形式:
属性名? //属性的可选链接
下标脚本? //下标脚本的可选链接
方法名? //方法的可选链接
对象可选链接的调用形式如下:
对象名.可选链接
Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸【示例8-23】以下将定义属性的可选链接,其代码如下:
import Foundation
class Residence {
//定义一个可选类型的类型属性numberOfRooms
class var numberOfRooms:Int?{
return 100
}
var number:Int?
}
let newClass=Residence()
if let a=Residence.numberOfRooms? { //调用可选链接
println(“目标有值”)
}else{
println(“目标为空”)
}
if let a=newClass.number? { //可选链接
println(“目标有值”)
}else{
println(“目标为空”)
}
Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸在此代码中,由于umberOfRooms的属性值不为空,所以会出现”目标有值”,但是对于number属性来说,没有赋初值即number属性为nil,所以会出现”目标为空”运行结果如下所示:
目标有值
目标为空
Program ended with exit code: 0
注意:在定属性、下标脚本以及方法定义为可选链接时,这些属性、下标脚本和方法都必须是可选类型,否则程序就会出现以下的错误。如以下的代码,是对属性进行的可选链接:
import Foundation
class NewClass{
var value:Int=10
}
let newClass=NewClass()
let newValue=newClass.value?
println(newValue)
由于在此代码中对一个不是可选类型的属性进行了可选链接定义,导致程序出现了以下的错误:
Operand of postfix ‘?’ should have optional type; type is ‘Int’
Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸
Comments are closed.