Ios 在Swift中,0美元在闭包中代表什么?

Ios 在Swift中,0美元在闭包中代表什么?,ios,xcode,swift,closures,Ios,Xcode,Swift,Closures,我见过Swift内部使用的闭包$0,有时它们使用$1。您能使用的$0和其他$X到底是什么 以下是正在使用的it示例: applyMutliplication(2, {$0 * 3}) array.map({$0 + 1}) 这是一个速记参数名 从Swift手册: “Swift自动为内联提供速记参数名称 闭包,可用于引用闭包的 参数的名称为$0、$1、$2,依此类推。“ -苹果公司 它有助于减少代码的冗长(有时以可读性为代价),这样在定义闭包时就不必写出冗长的参数列表。因为冗长可以提供可理解性。

我见过Swift内部使用的闭包
$0
,有时它们使用
$1
。您能使用的
$0
和其他
$X
到底是什么

以下是正在使用的it示例:

applyMutliplication(2, {$0 * 3})
array.map({$0 + 1})

这是一个速记参数名

从Swift手册:

“Swift自动为内联提供速记参数名称 闭包,可用于引用闭包的 参数的名称为$0、$1、$2,依此类推。“

-苹果公司


它有助于减少代码的冗长(有时以可读性为代价),这样在定义闭包时就不必写出冗长的参数列表。

因为冗长可以提供可理解性。是的,你是对的,有时候冗长确实有助于可读性和可理解性,尽管这已经开始成为人们的共识。不管怎样,我都更新了我的答案。很好的改变。减少长参数列表的写入并不是最终目标,这只会发生一次,并且有自动完成的帮助。最终目标应该是可读性,因为代码通常会被读取很多次。虽然闭包中没有参数,但$0将引用什么?(调用方自身?)确定。。但是如果我需要在闭包中使用闭包呢?如果我再参考0美元,它会不会想到。。作为同一个变量?示例:TransformOf(fromJSON:{$0!.map($0!.toInt())},toJSON:{$0!.map(($0)))})。。。。。我需要这个函数将第一个“fromJSON”闭包转换为[String]并将其转换为[Int],第二个闭包则执行相反的操作。。但它永远不会编译,如果我这样做,它也不会编译。。。TransformOf(fromJSON:{($0!as[String]).map($0!.toInt())},toJSON:{($0!as[Int]).map(($0))})。。请告知可能的副本: