Rus*_*ell 5 ruby metaprogramming
这是一个空闲的白日梦,但是有可能通过一些巧妙的元编程技巧在Ruby中定义一个新的逻辑运算符吗?我想定义一个but运算符.
例如,如果我想做某事,x但如果不是y,我必须写一些类似的东西:
if x and not y
Run Code Online (Sandbox Code Playgroud)
但我想写
if x but not y
Run Code Online (Sandbox Code Playgroud)
它应该完全相同,and但可以由程序员明智地使用以增加代码的易读性.
如果不编辑Ruby解析器和源代码并编译新版本的Ruby,则不能.如果你愿意,你可以使用这个丑陋的语法:
class Object
def but(other)
self and other
end
end
x.but (not y)
Run Code Online (Sandbox Code Playgroud)
请注意,您无法删除此代码段中的括号或空格.它还会将代码的功能隐藏到其他读取代码的人身上.不要这样做.
| 归档时间: |
|
| 查看次数: |
571 次 |
| 最近记录: |