是否有标准方法来过滤所有项目

时间:2016-10-22 02:55:14

标签: swift functional-programming swift3

我有一个带有isIncluded参数的API,然后传递给filter。我想要包括每个项目,所以我写了这个:

object.read(isIncluded: { _ in true })

这对我来说并不令人满意。我希望有些人更有表现力,所以我写了以下函数。

func always<T>(t: T) -> Bool { return true }

所以我有一个非常好的

object.read(isIncluded: always)

然后我认为应该有一个内置来完成这个,但我找不到一个。

我在标准库中遗漏了什么。有没有更好的方法在标准库中进行组合?

2 个答案:

答案 0 :(得分:0)

您可以从闭包中删除参数定义,这样您就可以将第一个示例缩短为:

object.read(isIncluded:{true})

答案 1 :(得分:0)

对于您不想过滤的情况,可能只提供默认值:

func read(isIncluded: (Object) -> Bool = {true}) { ... }

然后,您只需将其称为Object.read(),而无需包含isIncluded: {true}过滤器。