我是groovy和closures的新手。
我试图用groovy复制append函数,经过多次试验和错误,这就是我的工作,
def storeAndPrint(x) {
x << {
-> it + it
}
print x
return this
}
storeAndPrint("G").storeAndPrint("o").storeAndPrint("ing")
我试图用下面的东西做同样的事情 -
def storeAndPrint = {
it << {
-> it + it
}
print it
return this
}
storeAndPrint("G").storeAndPrint("o").storeAndPrint("ing")
给出了以下异常
GCaught: groovy.lang.MissingMethodException: No signature of method: com.sample.groovy.GroovyMain.storeAndPrint() is applicable for argument types: (java.lang.String) values: [o]
groovy.lang.MissingMethodException: No signature of method: com.sample.groovy.GroovyMain.storeAndPrint() is applicable for argument types: (java.lang.String) values: [o]
at com.sample.groovy.GroovyMain.run(GroovyMain.groovy:22)
我不确定我是否完全理解为什么第一个有效,为什么不是第二个。其次,我不确定这里是否需要使用左移运算符,或者是否可以完成。
第三,我如何分割方法/功能,以便在我做
时获得相同的结果store("G").store("o").store("ing").printit()
提前致谢。