//: 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可选值(一)的更多相关文章

  1. Option可选值可选值(二)

    //: Playground - noun: a place where people can play import Cocoa var str1 = "供选链接和强制拆包的不同. &qu ...

  2. C#函数式编程之可选值

    在我们的实际开发中已经会遇到可空类型,而在C#中自从2.0之后就提供了可空类型(Nullable<T>),普通的值类型是不可以赋值为NULL,但是在类型的后面加上问号就变成了可空类型,这样 ...

  3. 窥探Swift之新添数据类型元组与可选值

    今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional).上面这两个类型是Swift独有的类型,使用起来也是非常方便的,今天就通过一些 ...

  4. Jquery操作select,左右移动,双击移动 取到所有option的值

    $(function () { function MoveItem(fromId, toId) { $("#" + fromId + " option:selected& ...

  5. 2. Swift元组|可选值|断言

    1. 元组英文名字 Tuple,将多个数据类型(任意类型)组合成一个数据,与c语言的中的机构体有几分相似,功能也是非常强大的,尤其是在定义请求参数,状态之类的地方经常用到. let http404Er ...

  6. jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13 我要评论

    jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13我要评论 本文为大家介绍下jquery获得option的值和对option ...

  7. jquery获得option的值(示例)

    jquery获得option的值和对option的操作. jQuery获取Select元素,并选择的Text和Value: 复制代码代码如下: $("#select_id").ch ...

  8. Swift语言指南(六)--可选值

    原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...

  9. jq获取被选中的option的值。jq获取被选中的单选按钮radio的值。

    温故而知新,一起复习下jq的知识点. (1) jq获取被选中的option的值 <select id="select_id"> <option value=&qu ...

随机推荐

  1. ActiveMQ学习笔记(17)----Message高级特性(一)

    1. Messaage Properties ActiveMQ支持很多消息属性,具体可以参考 http://activemq.apache.org/activemq-message-propertie ...

  2. 路飞学城Python-Day11

    [44.函数-生成器] 需求:有一个列表 [0,1,2,3,4,5,6,7,8,9],对这个列表循环+1 li = [0,1,2,3,4,5,6,7,8,9] li = map(lambda x:x+ ...

  3. js常见语法错误

    “Missing semicolon.” : “缺少分号.”, “Use the function form of \”use strict\”.” : “使用标准化定义function.”, “Un ...

  4. PHP SOAP 教程

    一.SoapServer 服务器 1.__construct 作用:创建 SoapServer 对象 用法:__construct ( mixed wsdl [, array options] ) 参 ...

  5. [CTSC2007][APIO2007]数据备份Backup

    题目:BZOJ1150.codevs1615.洛谷P3620 题目大意:有n个点,k条链,每个点离原点有一定的距离.要你用k条链连接2k个点,使得k条链的长度最短. 解题思路:毕竟是CTSC级别的题目 ...

  6. 走进Java(一)J2SE

    一.Java是什么 Java是Java语言和Java平台的总称.Java语言和C#一样.核心都是oo.并且比較而言,Java做的更好. Java由四方面组成:         • Java编程语言,即 ...

  7. Android 主界面长按创建快捷方式

    Android中创建快捷方式主要有两种方式.一是在代码中直接加入生成桌面快捷方式的代码:二是通过小部件加入; 这篇文章主要讲另外一种方法! 1.通过在AndroidManifest文件里为Activi ...

  8. Experience Design for Sexable Forum

    Mars March 16, 2015

  9. phpcms v9会员推荐位

    模版显示推荐会员代码 <div class="zhanxun2">             <div class="title">   ...

  10. struts2入门(搭建环境、配置、示例)

    转自:https://blog.csdn.net/u012862311/article/details/53412716 1.下载Struts2的jar包 下载地址:http://archive.ap ...