Main Nightly

𝑓(x) 函数式API

一些在日常开发中很有用的函数和类型的集合。


函数

map

为了帮助提高一些可组合性,在 ArrayResult 上定义的一些现有 map 函数被设为全局符号。

public func map<A,B>(_ a: [A], _ f: (A) -> B) -> [B] { ... 

public func map<A,B>(_ a: Result<A,Error> , _ f: (A) -> B) -> Result<B, Error> { ...

Optional 上的 Map

请查看 OptionalAPI Swift Package 以了解关于 Optional 的 map 和其他扩展。

identity

完整实现看起来像这样

func identity<A>(_ a: A) -> A { a }

这可能看起来像是一个没用的函数,但是每次你在代码中写 { $0 } 时,你都在写这个完全相同的函数。让我们看一些例子

[1,2,3].map{ $0 } // [1,2,3]

同样可以使用 identity 来完成,但会更清晰

[1,2,3].map( identity ) // [1,2,3]

这个函数在哪里有用呢?

这取决于你需要什么。我使用它来在我的快照测试中生成变体。一个数组包含设备,另一个包含尺寸类别,语言方向... 你懂的 ;)

🐇🕳 Rabbit Hole

这个项目是 🐇🕳 Rabbit Hole Packages Collection 的一部分