是否可以在ruby中重新定义and
之类的关键字?我有一些像这样的DSL代码:
rule condition and another_condition do
do_something
end
我希望and
成为我班级中的另一个ruby方法,就像condition
和another_condition
一样。这可能吗?
答案 0 :(得分:1)
像and
和or
之类的关键字无法重载(覆盖)。
本文解释了运算符重载并指定了无法覆盖的运算符:
http://strugglingwithruby.blogspot.com/2010/04/operator-overloading.html
在文章的最后,它指出:
You cannot override keywords, such as "or", nor can you override:
&& & || | () {} :: . ~ .. ...
<强>更新强>
正如JörgWMittag指出的那样,这是错误的。 and
,or
,&&
和||
是唯一无法覆盖的运算符。 not
可以通过!
覆盖{/ 1}}。
答案 1 :(得分:0)
语言不支持。
但你总是可以尝试像this一样的工具。