Можно ли определить новый оператор в Groovy?
Можно ли определить совершенно новый оператор в Groovy? Я хотел бы выразить сделку, в которой кто-то покупает 200 предметов по цене 10, как это:
def trade = 200 @ 10
Достижимо ли это?
Спасибо
EDIT: я хочу прояснить, что меня интересует определение оператора, а не добавление метода. Овации.
3 ответа:
Я не совсем уверен, как вы можете сделать эту работу для знака
@
, но вы, безусловно, можете добавить операцию, подобную этой, которую я на самом деле нахожу более выразительной:Number.metaClass.buyFor { Integer price -> delegate * price } def result = 200.buyFor(10) println result