let f = { input in
1 + input
}
f(2)
通常,您需要提供
explicit type annotation
强制它使用特定类型,或者在编译器无法推断该类型的情况下。当您有一个输入参数时,这很简单:
let f = { (input: Double) -> Double in
1 + input
}
f(2)
但是,如果没有输入参数,我不确定语法应该是什么样子:
let f = { -> Double in
1 + 1
}
f()
错误:需要表达式
-
let f = { -> Double in
:“错误:应为表达式”
-
let f = { _ -> Double in
-
let f = { Void -> Double in
:“错误:无法推断当前上下文中闭包参数'Void'的类型”
-
let f = { Never -> Double in
:“错误:无法在当前上下文中推断闭包参数'Never'的类型”
adding an
as
clause to the end
,但如果无法使用此语法为闭包定义一个显式的返回类型,则这似乎是一个冗长的疏忽。
let f = {
1 + 1
} as () -> Double
f()
如何定义闭包的显式返回类型(使用内联语法而不是
作为
),如果没有输入参数?
explicit type annotation closure return only
找不到任何相关的东西。)