关闭链接与多个内部闭合

时间:2014-11-09 03:56:01

标签: groovy types return type-conversion closures

我是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()

提前致谢。

0 个答案:

没有答案