closurevariablebug.groovy

来自「Groovy动态语言 运行在JVM中的动态语言 可以方便的处理业务逻辑变化大的业」· GROOVY 代码 · 共 41 行

GROOVY
41
字号
/**
 * @version $Revision: 2284 $
 */
class ClosureVariableBug extends GroovyTestCase {
    
    void testClosurePassingBug() {
        def count = 0
        def closure = { assert count == it }
        closure(0)
        
        count = 1
        closure(1)
    }
    
    void testPassingClosureAsNamedParameter() {
        def x = 123
        
        def foo = new Expando(a:{x}, b:456)
    
        assert foo.a != null
        
        println "Foo has a = ${foo.a}"
        
        def value = foo.a()
        assert value == 123
    }
    
    void testBug() {
        def value = callClosure([1, 2])
        assert value == 2
    }
    
    protected Integer callClosure(collection) {
        Integer x
        /** @todo
        Integer x = 0
        */
        collection.each { x = it }
        return x
    }
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?