Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Swift语言快速入门v3.0

Swift语言快速入门v3.0

8.6.2  通过可选链接调用属性、下标脚本、方法Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸开发者可以使用可选链接的可选值来调用属性、下标脚本和方法,并检查这些内容调用是否成功。以下就是通过可选链接调用属性、下标脚本、方法的详细讲解。

1.通过可选链接调用属性Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

通过可选链接调用属性的语法形式如下:

可选链接.属性名

Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸【示例8-24】以下将通过自判断可选链接来调用属性值,并获取这个属性值。代码如下:

import Foundation

class Person {

var residence: Residence?

}

class Residence {

var numberOfRooms = 10

}

let john = Person()

if let roomCount = john.residence?.numberOfRooms {                                                //通过可选链接调用属性

println(“John在房子中有 \(roomCount)个房间”)

} else {

println(“无法检索房间数”)

}

由于john.residence是空,所以这个可选链接就会失败,但是不会出现错误,会返回一个nil。运行结果如下:

无法检索房间数Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Program ended with exit code: 0

如果不想返回nil l,开发者需要将john.residence设置为不为空。如以下的代码,将john.residence设置为johnResidence。代码如下:

let john = Person()

let johnResidence = Residence()

john.residence=johnResidence

if let roomCount = john.residence?.numberOfRooms {                                                   //通过可选链接调用属性

println(“John在房子中有 \(roomCount)个房间”)

} else {

println(“无法检索房间数”)

}

运行结果如下:

John在房子中有 10个房间Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Program ended with exit code: 0

2. 通过可选链接调用下标脚本

通过可选链接调用下标脚本的语法形式如下:

可选链接.[下标]

【示例8-25】以下将通过自判断可选链接来调用下标脚本。代码如下:

import Foundation

class Person {

var residence: Residence?

}

class Residence {

subscript(i: Int) -> Int {

return i

}

}

let john = Person()

if let firstRoomName = john.residence?[5] {                                                 //通过可选链接调用下标脚本

println(“John在房子中有 \(firstRoomName)个房子”)

} else {

println(“无法检索房间数”)

}

运行结果如下所示:

无法检索房间数Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Program ended with exit code: 0

注意:当开发者使用可选链来调用子脚本的时候,你应该将“?”问号放在下标脚本括号的前面而不是后面。可选链的问号一般直接跟在自判断表达语句的后面。否则程序就会出现错误。如以下的代码就将上面的代码做了一下修改,代码如下:

let john = Person()

if let firstRoomName = john.residence[5]? {                                                     //通过可选链接调用下标脚本

println(“John在房子中有 \(firstRoomName)个房子”)

} else {

println(“无法检索房间数”)

}

在此代码中就“?”问号放在了下标脚本括号得后面,导致程序出现了以下的错误:

‘Residence?’ does not have a member named ‘subscript’

3.通过可选链接调用方法

通过可选链接调用方法的语法形式如下:

可选链接.方法

Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸【示例8-26】以下将通过自判断可选链接来调用方法printNumberOfRooms(),此方法的功能是输出numberOfRooms的值。代码如下:

import Foundation

class Person {

var residence: Residence?

}

class Residence {

var numberOfRooms=10

func printNumberOfRooms() {

println(“The number of rooms is \(numberOfRooms)”)

}

}

let john = Person()

if  let a: ()=john.residence?.printNumberOfRooms() {                                                  ////通过可选链接调用方法

println(“打印房间数”)

} else {

println(“无法打印房间数”)

}

运行结果如下:

无法打印房间数

Program ended with exit code: 0

Swift语言通过可选链接调用属性、下标脚本、方法Swift语言入门很简单大学霸

Comments are closed.