我认为这是一百万次被问到的问题,但是使用Google搜索来解释逻辑就可以了!运算符。
我遇到了以下两个代码示例:
class RetainCycle {
var closure: (() -> Void)! // THIS LINE
var string = "Hello"
init() {
closure = {
self.string = "Hello, World!"
}
}
}
AND:
class B: A {
convenience init(str : String) {
self.init(num: Int(str)!) // THIS LINE
}
func haveFun() {
print("Woo hoo!")
}
}
示例本身并没有真正的相关性,它们都在讨论不同的主题,但是在两种情况下,语法都是“!”
在第二个示例中,我非常确定这意味着解开从Int()返回的值,因为我假设它返回了一个可空值,但是在第一个示例中是什么意思?
谢谢,阿维。
答案 0 :(得分:1)
在第一种情况下,它使您在代码中的其他地方使用closure
时无需使用?
,因为Xcode假定它不会为nil,与连接时相同从情节提要到代码的一些UI元素可以节省已经用!
包裹的出口