swift optional chaining

class ca{

var num:Int =1;

}

class cb{

var a:ca?;

}

class cc{

var b:cb?;

}

var x:cc =cc();

var y:Int? =x.b?.a?.num;//或var
y = x.b?.a?.num;

println("y =\(y),\r\ny type =\(y.dynamicType)");

时间: 2024-10-13 00:58:35

swift optional chaining的相关文章

《Swift Programming Language 》——可选链(Optional Chaining)

可选链(Optional Chaining)是一种可以请求和调用属性.方法及子脚本的过程,它的自判断性体现于请求或调用的目标当前可能为空(nil).如果自判断的目标有值,那么调用就会成功:相反,如果选择的目标为空(nil),则这种调用将返回空(nil).多次请求或调用可以被链接在一起形成一个链,如果任何一个节点为空(nil)将导致整个链失效. 注意: Swift 的自判断链和 Objective-C 中的消息为空有些相像,但是 Swift 可以使用在任意类型中,并且失败与否可以被检测到. 可选链

对照Java学习Swift--可选链式调用(Optional Chaining)

可选链式调用(Optional Chaining)是一种可以在当前值可能为nil的可选值上请求和调用属性.方法及下标的方法.如果可选值有值,那么调用就会成功:如果可选值是nil,那么调用将返回nil.多个调用可以连接在一起形成一个调用链,如果其中任何一个节点为nil,整个调用链都会失败,即返回nil. swift这个功能设计的很好,不会报空指针异常,如果是在Java中,那个环节的对象为空,则报空指针异常,程序异常退出,swift则不会,会直接返回一个nil,很方便. 通过在想调用的属性.方法.或

十六、Optional Chaining

1. 概述 当某个可选值可能为空时,如果要访问它的属性.方法.下标脚本,需要使用Optional chaining 对它进行解包,然后进行访问. 如果这个可选值包含一个值,那么访问成功. 如果这个可选值为 nil ,那么访问返回nil. 多个访问可以组合在一起,成为一个访问链条,任何一个链条为nil,整个链条返回nil. 注意:Swift的 Optional Chaining 和 bjective-C 中的消息为空有些相像,但是Swift可以使用在任意类型中,并且失败与否可以被检测到. 2. 使

Optional Chaining as an Alternative to Forced Unwrapping

?与!的区别 You specify optional chaining by placing a question mark (?) after the optional value on which you wish to call a property, method or subscript if the optional is non-nil. This is very similar to placing an exclamation mark (!) after an option

Optional chaining (可选链)

JavaScript 从成立之初就已经走了很长一段路,提供了许多新的功能,这些功能是专门设计来使该语言更加人性化和提升效率.以下是我最近发现的一些有趣的JavaScript 新增内容.其中一些功能已在 Node,Chrome,Firefox 和 Safari 中可用,而其他功能仍处于建议阶段. Optional chaining (可选链)Optional chaining 可选链使用 ?. 操作符来表示,Optional Chaining 使我们能检查一个对象上面是否存在某属性.其它一些语言有

Swift Optional Type(问号?和感叹号!)的理解和使用

两个礼拜搞定iOS,那是吹牛吹出来的.呵呵,不过经过几天的学习还是觉得iOS还是很熟悉的,觉得有javascript的一些特征,有一些java的特征,貌似swift集大家所成的一门语言,本人还是比较喜欢写android的,但是对比iOS来讲,swift貌似简单多了,动画,控件,屏幕适配这些都比较类似哈.今天在学习iOS的时候碰到一个感叹号(!)问号(?)的问题.比较纠结,不知道这代表的是什么意思.所以去查看一下文档,明白其中的含义. 先看两张图片 代码提示String需要?或者感叹号 函数返回值

Swift optional详解

学习了一阵swift对于optional类型一直不是很了解,为此特意学习了一下,通过观看斯坦福大学的视频,将他所讲的进行了总结 optional 有两个值 1.not set (未设) 代表这个值没有被任何人设置过, 或者  有人把他设置成了  未设 状态 我们说这个是nil , 就是未设 的意思, 就是optional 变量在  未设  状态下的值  not set 2.something  (被赋了一个值) let digit : String? 被设置赋了一个值  , 这个值的类型就是  

SWIFT Optional Value

SWIFT中有一个类型定义叫可选值,在变量类型后面加一个?号即可定义一个类型为Optional Value的变量,当在使用变量时要用到强制解包!. 如在页面上有一个可选输入年龄的框,在接受数据的时间就可能要定义一个可选值的变量. var age:Int? = 10 var str:String = "Age is "+String(age!) 以下为从一个数组中取数据,然后判断是否存在值 var numberOfLegs = ["ant":6, "snak

Swift-可空链式调用(Optional Chaining)(十五)

前言 其实可空链式调用并没有它的名字那么陌生,简而言之就是对于可选类型Optional(使用问号 ? 后缀表示)和强制展开类型(使用感叹号 ! 后缀表示)的使用方法.在平常写代码的时候只是大概的清楚哪些值是可空的,哪些值是肯定存在的,但是并没有深究可空的调用有何优点,有何使用时需要注意的事项.至少前面写不少示例代码的时候,我也是大都按照自己的想法去定义的.这一小节就是对可空调用的详细描述,至于链式,就是多层调用,大概就是school.classroom.student.name这样的调用方法.