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 ...
随机推荐
- frameset宽屏居中写法
在写frameset的时候发现页面较小的时候不能在屏幕上居中,记录一下frameset页面居中的写法 <frameset cols="*,1280,*" frameborde ...
- SpringBoot学习笔记(14)----应用监控-HTTP方式
SpringBoot提供了三种应用监控的方式 通过HTTP(最简单方便) 通过JMX 通过远程shell 这里就是用最简单的方式来使用SpringBoot的应用监控 首先引入依赖,pom文件如下 &l ...
- JDOJ 2785: 商之和 数论分块
Code: #include <iostream> #include <cstdio> #define setIO(s) freopen(s".in",&q ...
- 12种CSS BUG解决方法与技巧
一. 针对浏览器的选择器 这些选择器在你需要针对某款浏览器进行css设计时将非常有用. IE6及其更低版本,本文由52CSS.com整理,转载请注明出处! * html {} IE7及其更低版本 *: ...
- CSS常用样式--font
CSS font 属性 参考:W3school- CSS font 所有浏览器都支持 font 属性,可在一个声明中设置所有字体属性,各属性需按顺序,语法如下: selector{ font:styl ...
- 纯净版linux (debian)挂载VirtualBox共享文件夹
使用的虚拟机版本是:VirtualBox-5.2.8-121009 使用的linux版本是:Linux debian 4.9.0-7-amd64 tty 1. 开始配置 1.1:打开虚拟机设置,打开你 ...
- 【Divide by Zero 2017 and Codeforces Round #399 (Div. 1 + Div. 2, combined) B】 Code For 1
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 把序列生成的过程看成一颗树 会发现最后形成的是一颗二叉树. 每个二叉树上的节点就对应了序列中的一个数字. 如果我们把每个节点都往下投 ...
- 10、匿名内部类、枚举类、日期、Math、Random、String、equals、StringBuffer、包装类、对象数组、克隆,标准输出3
1对象的克隆(clone) 单纯的同类的两个对象a0 a00,a0=a00只是栈指向同一个堆,而不是开辟两个新堆,修改其中一个,另一个也会受牵连. 需要重写Clone()方法,并且实现Cloneabl ...
- iOS_青花瓷Charles抓包
使用青花瓷Charles抓取手机端的网络请求: 第一步,下载安装并打开Charles watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcHJlX2VtaW5l ...
- thinkphp5项目--个人博客(六)
thinkphp5项目--个人博客(六) 项目地址 fry404006308/personalBlog: personalBloghttps://github.com/fry404006308/per ...