/* Hello World in Groovy */
println("Hello world")
int a = 5
if (1 == 1){
println a
fcn() //line 11
}
def fcn(){
println a //line 15
}
这是我的Groovy脚本,它获取错误
Hello world
5
Caught: groovy.lang.MissingPropertyException: No such property: a for class: main
groovy.lang.MissingPropertyException: No such property: a for class: main
at main.fcn(main.groovy:15)
at main.run(main.groovy:11)
被处决时。为什么变量a
在函数fcn
中不可用?
3条答案
按热度按时间jm2pwxwz1#
您可以以不同的方式定义变量
a
:备选案文1
备选案文2
合理的做法是在脚本的作用域中定义一个字段,而不是在脚本的“run方法”中定义的变量,因此不能从其他函数中访问。
考虑查看this thread以获取更多信息Field注解文档的链接也提供了相关信息
9w11ddsr2#
选项3您可以将
fcn
定义为一个适当的函数,在Groovy中由Closure
表示。然后你可以访问外部作用域的变量:llycmphe3#
在定义全局变量时尝试
a = 5
,这应该在函数fcn中可用。How do I create and access the global variables in Groovy?