groovy的变量作用域规则和java类似
在方法内部定义的变量在外部是不可见的
对groovy脚本来说,用def定义的变量对binding.variables.变量名 不可见。没有def等任何定义的可被binding.variable.变量名 所访问。
在脚本代码块中定义的变量是可见的
void testvarScope(){ a = 111 def b = 222 } println a println b //块内定义,不使用def,全局可见 if(true){ def email = "sky@gmail.com" //email = "sky@gmail.com" println "in code block email=$email" } println "out of block email=$email" //没有用def定义 num = 5 println binding.variables.num == 5 //用def定义 def name = "sky" println binding.variables.name 运行结果: in code block email=sky@gmail.com in code block email=sky@gmail.com age = 30 true null