Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸

Swift语言可选链接可选链接的实现方式Swift语言入门很简单大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

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.