gpt4 book ai didi

class - Swift 类省略带闭包的括号 : syntactic sugar or something else?

转载 作者:搜寻专家 更新时间:2023-10-31 08:23:52 24 4
gpt4 key购买 nike

我试图理解为什么在将 block 作为参数时可以在类初始化中省略圆括号。

没有括号的例子:

var block = CCActionCallBlock { () -> Void in
NSLog("sedfjsdkl")
}

这是带括号的形式上正确的版本:

var block = CCActionCallBlock ( { () -> Void in
NSLog("sedfjsdkl")
})

两种变体都按预期工作,没有任何运行时错误或编译器警告。

在什么情况下我可以省略类的初始化括号?这是相同的代码还是有任何副作用?关于闭包/ block ,还有其他我应该注意的语法糖吗?

注意:我知道一个闭包作为最后一个参数可以写在括号之后,但找不到与省略括号相关的任何内容完全。

例如,我不能只是一般地省略类初始化括号,它似乎必须将 block /闭包作为语法糖工作的参数:

var block = MyClass   // error, obviously ...

更新:显然,Xcode 会自动完成没有括号的版本。

最佳答案

来自 Closures在 Swift 引用中(添加了重点):

NOTE

If a closure expression is provided as the function’s only argument and you provide that expression as a trailing closure, you do not need to write a pair of parentheses () after the function’s name when you call the function.

关于class - Swift 类省略带闭包的括号 : syntactic sugar or something else?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27405122/

24 4 0
文章推荐: java - Primefaces 验证码消失或不更新/刷新无效输入?
文章推荐: html - 如何使响应圈
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com