首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Swift闭包中,$0和$1意味着什么?

在Swift闭包中,$0和$1意味着什么?
EN

Stack Overflow用户
提问于 2016-03-22 08:48:15
回答 3查看 58.7K关注 0票数 91
代码语言:javascript
复制
let sortedNumbers = numbers.sort { $0 > $1 }
print(sortedNumbers)

谁能解释一下,$0$1在swift中是什么意思?

更多示例

代码语言:javascript
复制
array.forEach {
    actions.append($0)
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-22 08:52:00

$0是传递给闭包的第一个参数。$1是第二个参数,依此类推。您显示的闭包是以下的简写:

代码语言:javascript
复制
let sortedNumbers = numbers.sort { (firstObject, secondObject) in 
    return firstObject > secondObject
}
票数 138
EN

Stack Overflow用户

发布于 2019-08-14 15:40:14

除了@Bobby的回答之外,我还想添加一个示例

代码语言:javascript
复制
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
票数 4
EN

Stack Overflow用户

发布于 2016-03-22 08:54:33

它是参数名称的简写形式。

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

如果您在闭包表达式中使用这些速记参数名称,则可以从其定义中省略闭包的参数列表,并且速记参数名称的数量和类型将从预期的函数类型中推断出来。in关键字也可以省略,因为闭包表达式完全由它的主体组成:

代码语言:javascript
复制
    reversed = names.sort( { $0 > $1 } )

这里,$0和$1指的是闭包的第一个和第二个字符串参数。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36144322

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档