ruby - 在 Ruby 中定义新的逻辑运算符

标签 ruby metaprogramming

这是一个非常无聊的白日梦,但是否可以通过一些巧妙的元编程技巧在 Ruby 中定义一个新的逻辑运算符?我想定义一个 but 运算符。

例如,如果我想在 x 而不是 y 为真时做某事,我必须编写如下内容:

if x and not y

但是我想写

if x but not y

它的工作方式应该与 完全相同,但要由程序员合理使用以提高代码的易读性。

最佳答案

如果不编辑 Ruby 解析器和源代码并编译新版本的 Ruby,你就做不到。如果你愿意,你可以使用这个丑陋的语法:

class Object
  def but(other)
    self and other
  end
end

x.but (not y)

请注意,您不能删除此代码段中的括号或空格。它还会将代码的功能隐藏到阅读您代码的其他人身上。不要这样做。

关于ruby - 在 Ruby 中定义新的逻辑运算符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8297645/

相关文章:

ruby - 元素不可点击错误 Ruby/Watir

ruby - 如何重构在同一对象上调用多个方法的代码?

Ruby 元编程 - 通过过程动态定义新类?

c++ - 在 C++ 中如何使用模板调用提供类型的特定成员

C++ 模板元编程,使用可变模板来执行结构的特定成员的操作

c++ - C++中的模板工厂模式

Ruby,将字符串与 UTF-8 字符进行比较时出现问题

sql - Rails 以什么顺序执行数据库查询

ruby-on-rails - base64 照片和回形针 -Rails

c++ - 如何使外部可访问的结构内的可变参数模板?