2016-10-22 38 views
0

我有一个需要isIncluded参数,然后传递给filter的API。我想包括每个项目,所以我写了这个:所以我写了这个:是否有标准的方法来过滤所有项目

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

这不令我感到满意。我想让一些东西更具表现力,所以我写了下面的函数。

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

所以我有一个非常漂亮的

object.read(isIncluded: always) 

后来我想应该有一个内置在做的正是这一点,但我无法找到一个。

我错过了标准库中的东西。标准库中是否有更好的方法来编写它?

+1

Swift标准库试图实现实现Swifts目标所需的最低级别的功能。通过这种方式,运行时二进制文件在与应用程序一起发布时很小(这是必需的,直到实现了ABI稳定性),并且实现该库更容易。他们避免写这样的东西来实现自己的微不足道。 (例如,也没有标识函数,因为只需编写'{$ 0}'是非常简单的) – Alexander

回答

0

您可以从封闭下降的参数定义,这样就可以缩短你的第一个例子是:

object.read(isIncluded:{true}) 
0

对于您不希望过滤,也许只是提供一个默认的情况:

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

然后,您可以将其称为Object.read()而不必包含该isIncluded: {true}过滤器。

相关问题