在Swift的闭包中$ 0代表什么?

los*_*hua 26 xcode closures ios swift

我看到swift中的闭包里面有0美元,有时他们使用1美元.究竟什么是$ 0,你可以使用其他$ x?

以下是它的使用示例.

applyMutliplication(2, {$0 * 3})
array.map({$0 + 1})
Run Code Online (Sandbox Code Playgroud)

谢谢!

And*_*sek 26

这是一个速记参数名称.

来自Swift Book:

"Swift自动为内联闭包提供简写参数名称,可用于通过名称$ 0,$ 1,$ 2等来引用闭包参数的值."

- Apple Inc. "The Swift Programming Language".

它有助于减少代码的冗长(有时以可读性为代价),因此在定义闭包时不必编写长参数列表.

  • 因为冗长可以提供可理解性. (19认同)