装个逼:自定义三元运算符
最近刚看完@喵神翻译的函数式Swift这本书(有兴趣的小伙伴可以去买来看看,记得支持正版哟~),然后就想说说 Swift 中的自定义操作符,这个在函数式编程中也是非常有意义的工具。例如在 Applicative Functor 中的 <*> 和 Monad 中的 >>= 在我们自己实现函数式编程中都有可能需要自定义来实现这两个操作符。另外,除了在函数式编程里,我们平常的编程工作中也有经常遇到需要重载或者自定义操作符的时候,例如实现了 Equatable 协议的情况下就需要重写 == 操作符。 但是这里并不是手把手教你如何自定义操作符,而是来说说在 Swift 2 和 3 中自定义操作符有什么不同吧,至于英文好的小伙伴可以参考SE-0077。 在 Swift 2 的情况下,我们通常通过下面的代码来定义自己的操作符: // Swift 2 infix operator || { associativity: left precedence: 140 } func ||<…