我知道你可以超载现有的运营商.我想知道是否可以创建一个新的运算符.这是我的情景.
我要这个:
var x = (y < z) ? y : z;
Run Code Online (Sandbox Code Playgroud)
相当于:
var x = y <? z;
Run Code Online (Sandbox Code Playgroud)
换句话说,我想创建自己的<?运算符.
如何在ruby中编写一个具有我可以调用的过程的类,如下所示:
a = MyObj.new()
b = MyObj.new()
c = a * b
d = a / b
e = a - b
Run Code Online (Sandbox Code Playgroud)
这比以下更好:
c = a.multiply(b)
...
Run Code Online (Sandbox Code Playgroud)
谢谢
在诸如Haskell的某些语言中,可以使用任何带有两个参数的函数作为中缀运算符。
我觉得这种表示法很有趣,并且希望在红宝石中也能达到同样的效果。
给定一个假想的方法or_if_familiar
,我想能够写类似"omg" or_if_familiar "oh!",而不是or_if_familiar("omg", "oh!")
如何在ruby中创建这样的符号(不修改ruby本身)?