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可选值(一)的更多相关文章
- Option可选值可选值(二)
//: Playground - noun: a place where people can play import Cocoa var str1 = "供选链接和强制拆包的不同. &qu ...
- C#函数式编程之可选值
在我们的实际开发中已经会遇到可空类型,而在C#中自从2.0之后就提供了可空类型(Nullable<T>),普通的值类型是不可以赋值为NULL,但是在类型的后面加上问号就变成了可空类型,这样 ...
- 窥探Swift之新添数据类型元组与可选值
今天的博客中就总结一下关于Swift中相对Objc新添加的两个数据类型:元组(Tuple)和可选值类型(Optional).上面这两个类型是Swift独有的类型,使用起来也是非常方便的,今天就通过一些 ...
- Jquery操作select,左右移动,双击移动 取到所有option的值
$(function () { function MoveItem(fromId, toId) { $("#" + fromId + " option:selected& ...
- 2. Swift元组|可选值|断言
1. 元组英文名字 Tuple,将多个数据类型(任意类型)组合成一个数据,与c语言的中的机构体有几分相似,功能也是非常强大的,尤其是在定义请求参数,状态之类的地方经常用到. let http404Er ...
- jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13 我要评论
jquery获得option的值和对option进行操作 作者: 字体:[增加 减小] 类型:转载 时间:2013-12-13我要评论 本文为大家介绍下jquery获得option的值和对option ...
- jquery获得option的值(示例)
jquery获得option的值和对option的操作. jQuery获取Select元素,并选择的Text和Value: 复制代码代码如下: $("#select_id").ch ...
- Swift语言指南(六)--可选值
原文:Swift语言指南(六)--可选值 在值可能不存在的情况下使用可选值(optional), 可选值是: · 存在一个值,这个值等于 x 或 · 不存在任何值 注: 在 C 和 Objective ...
- jq获取被选中的option的值。jq获取被选中的单选按钮radio的值。
温故而知新,一起复习下jq的知识点. (1) jq获取被选中的option的值 <select id="select_id"> <option value=&qu ...
随机推荐
- [备忘]js-xlsx 操作 Excel 插件
github地址:https://github.com/SheetJS/js-xlsx oss地址:http://oss.sheetjs.com/js-xlsx/xlsx.full.min.js
- javascript中实现继承的几种方式
javascript中实现继承的几种方式 1.借用构造函数实现继承 function Parent1(){ this.name = "parent1" } function Chi ...
- 关于.net core 在docker中监听地址设置踩坑记
1.今天在做docker容器的时候发现如果将.net core 内部监听地址设置为localhost:8888. 2.在docker build -p 6444:8888 运行容器后,外部通过6444 ...
- Python 线程高级篇 threading 模块的使用
创建一个tread实例,给他传一个函数 #!/usr/bin/python import threading from time import * loops =[4,2] def loop (nlo ...
- 【BZOJ 1296】 [SCOI2009]粉刷匠
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] f[i][j][k]表示第i行前j列刷了k次,最大满意度 f[][j][k]=max{f[i][l][k],f[i][l][k-1] ...
- php通过shell调用Hadoop的方法
1.php代码(index.php) <!DOCTYPE html> <html> <!-- <style> body{background-color:re ...
- STL_算法_查找算法(binary_search、includes)
C++ Primer 学习中.. . 简单记录下我的学习过程 (代码为主) 全部容器适用(O(log(n))) 已序区间查找算法 binary_search //二分查 ...
- 联想z470 win7 64位双系统继续恢复镜像法安装黑苹果10.9.3
之前的方法是安装 10.9 http://blog.csdn.net/kissing_huo/article/details/23559239的 苹果最新的swift的语言 出来 必须最新的xcod ...
- 为什么button在设置标题时要用一个方法,而不像lable一样直接用一个属性
为什么button在设置标题时要用一个方法.而不像lable一样直接用一个属性 原因是有时我们对 button做一次点击,须要改变button的标题.仅仅实用方法才干做到,而label是标签 ...
- Linux socket 编程中存在的五个隐患
前言: Socket API 是网络应用程序开发中实际应用的标准 API.尽管该 API 简单,但是 开发新手可能会经历一些常见的问题.本文识别一些最常见的隐患并向您显示如何避免它 ...