向逻辑运算符添加别名



我有 ruby 项目(没有 rails(,我想为我的类的逻辑 AND 和 OR 运算符添加别名。我已经为我的类重载了逻辑运算符,但是如果我添加alias_method :foo, :or并像class_example_1 foo class_example_2一样使用,我会得到 SyntaxError。如何使别名工作?

不幸的是,你不能这样做。

Ruby 的中缀运算符

(如 andor(是硬编码的,作为语言语法的一部分,因此您无法像在 Haskell 或 Kotlin 中那样定义新的中缀运算符。

有一些奇怪但有趣的技巧可以让你获得类似的结果,但解析器约束意味着你不能完全做到你想要实现的目标。

或者,您可以只调用不带括号的foo,看起来非常相似:

class_example_1.foo class_example_2

或者,由于您已经重载了现有的逻辑运算符,因此只需使用这些运算符:

class_example_1 or class_example_2

相关内容

  • 没有找到相关文章

最新更新