【发布时间】:2019-10-08 15:44:00
【问题描述】:
我认为这是一个被问过一百万次的问题,但谷歌搜索它会导致对逻辑的解释!运算符。
我遇到过这两个代码示例:
class RetainCycle {
var closure: (() -> Void)! // THIS LINE
var string = "Hello"
init() {
closure = {
self.string = "Hello, World!"
}
}
}
与:
class B: A {
convenience init(str : String) {
self.init(num: Int(str)!) // THIS LINE
}
func haveFun() {
print("Woo hoo!")
}
}
这些例子本身并不相关,它们都在谈论不同的主题,但在这两种情况下都有“!”的语法
在第二个示例中,我很确定这意味着解开从 Int() 返回的值,因为我假设它返回一个可空值,但在第一个示例中它是什么意思?
谢谢,阿维。
【问题讨论】:
-
只要您绝对、肯定地确保您的应用程序在设置选项之前不会尝试获取选项的值,就会使用隐式展开的选项。