Lea*_*s2D 4 syntax closures class syntactic-sugar swift
我试图理解为什么我可以在类初始化中省略圆括号时将块作为参数.
没有括号的示例:
var block = CCActionCallBlock { () -> Void in
NSLog("sedfjsdkl")
}
Run Code Online (Sandbox Code Playgroud)
这是带括号的正式版本:
var block = CCActionCallBlock ( { () -> Void in
NSLog("sedfjsdkl")
})
Run Code Online (Sandbox Code Playgroud)
两种变体都按预期工作,没有任何运行时错误,也没有编译器警告.
在哪种情况下我可以省略类的初始化括号?这是相同的代码还是有任何副作用?我应该注意关于闭包/块的其他语法糖吗?
注意:我知道可以在括号后面写一个闭包作为最后一个参数,但是找不到任何与省略括号相关的内容.
例如,我不能只是通常省略类init括号,它似乎必须采用块/闭包作为语法糖的工作参数:
var block = MyClass // error, obviously ...
Run Code Online (Sandbox Code Playgroud)
更新: 显然Xcode自动填充到没有括号的版本.