let sortedNumbers = numbers.sort { $0 > $1 }
print(sortedNumbers)
谁能解释一下,$0
和$1
在swift中是什么意思?
更多示例
array.forEach {
actions.append($0)
}
发布于 2016-03-22 08:52:00
$0
是传递给闭包的第一个参数。$1
是第二个参数,依此类推。您显示的闭包是以下的简写:
let sortedNumbers = numbers.sort { (firstObject, secondObject) in
return firstObject > secondObject
}
发布于 2019-08-14 15:40:14
除了@Bobby的回答之外,我还想添加一个示例
var add: (Int,Int,Int)->Int
add = {
//So here the $0 is first argument $1 is second argument $3 is third argument
return $0 + $1 + $2
//The above statement can also be written as $0 + $1 + $2 i.e is return is optional
}
let result = add(20, 30, 40)
print(result) // Prints 90
发布于 2016-03-22 08:54:33
它是参数名称的简写形式。
Swift自动为内联闭包提供简写参数名称,可用于通过名称$0、$1、$2等引用闭包参数的值。
如果您在闭包表达式中使用这些速记参数名称,则可以从其定义中省略闭包的参数列表,并且速记参数名称的数量和类型将从预期的函数类型中推断出来。in关键字也可以省略,因为闭包表达式完全由它的主体组成:
reversed = names.sort( { $0 > $1 } )
这里,$0和$1指的是闭包的第一个和第二个字符串参数。
https://stackoverflow.com/questions/36144322
复制相似问题