Option可选值

Posted cxchanpin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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.")

//}























以上是关于Option可选值的主要内容,如果未能解决你的问题,请参考以下文章

组成必需值和可选值的期货

SSRS多值可选

用返回非可选值的计算属性覆盖返回可选值的计算属性

excel 设置 单元格的值为可选值,可选值设置为某一列。

Swift 中的可选值是啥?

可选值是啥意思?