Option可选值(一)
//: Playground - noun: a place where people can play
import Cocoa
class Person {
var residence: Residence?//供选连接
}
class Residence {
var rooms = [Room]()
var numberOfRooms:Int {
return rooms.count
}
subscript(i:Int) ->Room {
return rooms[i]
}
func printNumberOfRooms() {
println("The number of rooms is\(numberOfRooms)")
}
var address: Address?
}
class Room {
let name: String
init(name: String) {
self.name = name
}
}
class Address {
var buildingName:String?
var buildingNubmer:String?
var street: String?
func buildingIdentifier() ->String?
{
if (buildingName !=nil) {
return buildingName
}else if (buildingNubmer != nil) {
returnbuildingNubmer
}else {
return nil
}
}
}
let john =Person()
//let johnsHouse = Residence()
//johnsHouse.rooms[0] = Room(name: "Living Room")
//john.residence = johnsHouse
/*
你能够将多层供选链接连接在一起,能够掘取模型内更下层的属性方法和角标。然而多层供选链接不能再加入比已经返回的供选值很多其它的层。 也就是说:
假设你试图获得类型不是供选类型,因为供选链接它将变成供选类型。假设你试图获得的类型已经是供选类型,因为供选链接它也不会提高供选性。因此:
假设你试图通过供选链接获得 Int 值,不论使用了多少层链接返回的总是 Int?。相似的,假设你试图通过供选链接获得 Int?
值,不论使用了多少层链接返回的总是 Int?。
*/
let johnsAddress =Address()
johnsAddress.buildingName ="The"
johnsAddress.street ="Laurel"
john.residence!.address =johnsAddress
//链接供选返回值的方法
//if let buildingIdentifier = john.residence?
.address?.buildingIdentifier()?
.uppercaseString {
// println("John's building identifier is \(buildingIdentifier).")
//}
//连接多层链接
//if let johnsStreet = john.residence?.address?.street {
// println("John's street name is \(johnsStreet).")
//} else {
// println("Unable to retrieve the address.")
//}
//使用供选链接调用角标
//if let firstRoomName = john.residence?[0].name {
// println("The first room name is \(firstRoomName).")
//} else {
// println("Unable to retrieve the first room name.")
//}
相关文章
- 解决scalac Error: bad option -make:transitive
- warning: ignoring option PermSize=256m; support was removed in 8.0
- mac,pycharm美化code的快捷键,option+command+L
- [React Testing] Use React Testing Library’s Wrapper Option to Simplify using rerender
- mac,pycharm美化code的快捷键,option+command+L
- jquery中input和select中option选中和取消选中
- how is OData url select option implemented in the backend
- SAP Spartacus select option默认选择的实现
- elementui的el-select下拉框 el-option无法选择、绑定的值无法选中
- uni——判断option传参
- Python之pandas:pandas.set_option函数的参数详细解释
- 成功解决./nvidia-installer: invalid option: "‐‐no‐opengl‐files" ERROR: Invalid commandline, please run `
- jvm提示:ignoring option PermSize=512m; support was removed in 8.0
- 高版本Ubuntu挂载nfs文件系统报错:mount: /mnt/nfs: bad option; for several filesystems (e.g. nfs, cifs)
- DHCP Option 60 认识
- CMake语法—选项(option)