gpt4 book ai didi

swift - 为什么 swift 编译器认为闭包是尾随的?

转载 作者:行者123 更新时间:2023-11-30 10:47:19 25 4
gpt4 key购买 nike

我试图声明一个 void 返回闭包,并在另一个表达式之后立即使用它。所以我意识到编译器没有“看到”空格,但为什么它认为 someFunc 有一个闭包参数,而它显然没有?换句话说,为什么 ; 是必要的?

func someFunc() {

}

func someFunc2() {
someFunc();

{ arg in
print("\(arg + 1)")
}(0)
}

当分号被删除时,xcode 会给出错误“参数传递给不带参数的调用”。这真的是按照设计的吗?

最佳答案

f {/* 这里的闭包内容 */} 是尾随闭包更常见的形式,但括号不一定必须被省略(事实上,如果闭包之前还有其他参数),这意味着 f() {/* 这里的闭包内容 */} 也是一个有效的尾随闭包。

有些人喜欢在新行中开始 {(例如,我知道这是 C# 中的约定),因此您看到的这种行为看起来像是为了适应这些人。

关于swift - 为什么 swift 编译器认为闭包是尾随的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55484649/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com