Xcode7和array.filter方法的误解

时间:2015-09-04 03:17:34

标签: ios arrays xcode swift swift2

您好,我使用的是最新的Xcode 7 beta 6,并且似乎是阵列过滤方法的问题。

在以下示例中,我尝试重现此: 搜索数组,如果你发现任何大于40的数字扔掉它们,你做完所有返回数组过滤后。它曾经与Xcode 6.4一起使用,但现在它并不是我在这里缺少什么?一旦我输入过滤器并按下回车,我会得到这个:

(includeElement: (Self.Generator.Element) throws -> Bool

这是Xcode 6.4的代码

var someIntArray2 = [1,34,56,92,12,32,124,23,1293]

someIntArray2.filter({$0 < $40})

1 个答案:

答案 0 :(得分:2)

扩展我以前的评论:

someIntArray2.filter({$0 < $40})中,$40正在检查传递给闭包的第40个参数,并将第0个参数与它进行比较,但filter方法所需的闭包只需要一个参数

该行应该转换为someIntArray2.filter({$0 < 40}),它会将传递的参数与数字40 进行比较。

(由于闭包是函数的最后一个参数,因此也可以删除将该行转换为someIntArray2.filter{$0 < 40}的括号)