var arr = [4, 5, 23, 4, 5, 2, 3]
arr.filter({
return true
})
我收到错误'Int' is not a subtype of ()
。我究竟做错了什么?我读过的所有内容似乎都表明这应该有效。
答案 0 :(得分:2)
var arr = [4, 5, 23, 4, 5, 2, 3]
let arr2 = arr.filter {
_ in
return true
}
原始代码出现问题:
filter
返回一个数组。如果你没有抓住它,没有任何有用的事情发生。请注意,我已经在另一个变量中捕获了它;你也可以重新分配原始变量。
如果将参数传递给匿名函数,则必须捕获它。您可以无名地捕获它,如此处,或使用名称,或$0
,但您不能完全忽略它;你必须承认它。这就是我的_ in
所做的。
答案 1 :(得分:0)
您必须为过滤器提供索引:
arr.filter({
n in true
})