closureparameterpassingbug.groovy

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

GROOVY
41
字号
import org.codehaus.groovy.classgen.TestSupport

/**
 * @author John Wilson
 * @version $Revision: 2284 $
 */
class ClosureParameterPassingBug extends TestSupport {
    
    void testBugInMethod() {
        def c = { x ->
            def y = 123
            def c1 = {
                println y
                println x
                println x[0]
            }

            c1()
        }

        c([1])
    }

    void testBug() {
        assertScript """
def c = { x ->
    def y = 123
    def c1 = { 
        assert x != null , "Could not find a value for x"
        assert y == 123 , "Could not find a value for y"
        println x[0]
    }

    c1()
} 

c([1]) 
"""
    }
   
}

⌨️ 快捷键说明

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