是否可以在Groovy中定义一个新的运算符?

Dal*_*vak 6 dsl groovy operators

是否可以在Groovy中定义一个全新的运算符?我想表达一个交易,有人以10的价格购买200件物品,如下所示:

def trade = 200 @ 10
Run Code Online (Sandbox Code Playgroud)

这可以实现吗?

谢谢

编辑:我想让我更清楚,我有兴趣定义一个不添加方法的运算符.干杯.

bla*_*rag 6

我们一直希望能够通过Groovy中的用户定义一个操作符,但到目前为止我们还没有解决随之而来的问题.因此,目前的状态是Groovy不支持自定义运算符,只支持已经使用的运算符.


Ben*_*hko 2

我不太确定如何使此功能适用于标志@,但您当然可以添加这样的操作,我实际上发现它更具表现力:

Number.metaClass.buyFor { Integer price ->
   delegate * price
}

def result = 200.buyFor(10)
println result
Run Code Online (Sandbox Code Playgroud)