Skip to Main Content
iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
book

iOS 编程基础:Swift、Xcode 和Cocoa 入门指南

by Matt Neuburg
January 2017
Intermediate to advanced content levelIntermediate to advanced
552 pages
9h 43m
Chinese
China Machine Press
Content preview from iOS 编程基础:Swift、Xcode 和Cocoa 入门指南
104
3
1.
展开
Optional
之前已经介绍过将对象包装到
Optional
中的多种方法。不过相反的过程会怎样呢?如何
展开
Optional
得到其中的对象呢?一种方式是使用展开运算符(或是强制展开运算符),
它是个后缀感叹号,如下代码所示:
func realStringExpecter(s:String) {}
let stringMaybe : String? = "howdy"
realStringExpecter(stringMaybe!)
在上述代码中,
stringMaybe!
语法表示进入
Optional
stringMaybe
中,获取被包装的值,
然后在该处使用这个值。由于
stringMaybe
是个包装了
String
Optional
,因此里面的
内容就是个
String
。这正是
realStringExpecter
函数的参数类型!因此,我们可以将
展开的
Optional
作为实参传递给
realStringExpecter
stringMaybe
是个包装了
String
"howdy"
Optional
,不过
stringMaybe!
String
"howdy"
如果
Optional
包装了某个类型,那么你无法向其发送该类型所允许的消息;首先需要展
开它。比如,我们想要获得
stringMaybe
的大写形式:
let stringMaybe : String? = "howdy"
let upper = stringMaybe.uppercaseString // compile error ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Start your free trial

You might also like

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

机器学习实战:基于Scikit-Learn、Keras 和TensorFlow (原书第2 版)

Aurélien Géron
Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Swift 人工智能实战:从基础理论到AI 驱动的应用程序开发

Mars Geldard, Jonathon Manning, Paris Buttfield-Addison, Tim Nugent

Publisher Resources

ISBN: 9787111556350