4
我刚刚开始使用Groovy,来自Haskell,C++和一点Java的背景。Groovy关闭自动currying
可以说,我写像下面这样的封闭:
def mult = { x, y -> x * y }
后来我就可以写mult(3,5)
。
但是,如果我写mult(3)
,我得到一个编译错误。
我当然可以写mult.curry(3)
,但这对我来说似乎有点难看。
于是我可以试试这个方法:现在
def mult = { x -> { y -> x * y }}
,mult(3)
工作正常,但对两个数相乘,我必须写mult(3)(5)
到两个数相乘。
我想要的是两全其美。我希望能够写mult(3)
,mult(3,5)
和mult(3)(5)
。无论如何要关闭这样的行为?