[Groovy] 关于for循环的一个疑惑

thiner 2007-07-19
我在GroovyConsole中运行下面的代码的时候报错:
for(int i=0;i<5;i++)
{
 println "This is $i"
}

可是,这段代码改成Groovy风格就可以运行:
for(i in 0..<5)
{
 println "This is $i"
}

我对照了山风的教程,我觉得第一个没有问题啊,不知道错在哪里?
另,我发现,把
println "This is $i"

写成
println 'This is $i'

的话,会被当成字符串,而不会每次输出的时候都换成i的实际值。
请问山风,Groovy中还有类似这样的功能差异吗?
agile_boy 2007-07-19
groovy目前应该不支持java那样的for语法的
山风小子 2007-07-19
agile_boy 写道
groovy目前应该不支持java那样的for语法的

从Groovy1.1beta2开始已经支持经典的for语句了


To thiner:
如果不是Groovy1.1beta2之后的版本(包括Groovy1.1beta2),请升级Groovy

groovy> for(int i=0;i<5;i++) 
groovy> { 
groovy> println "This is $i" 
groovy> }

This is 0
This is 1
This is 2
This is 3
This is 4
lordhong 2007-07-21
thiner 写道

println "This is $i"

写成
println 'This is $i'


这个你要看GROOVY的SPEC, " double-quote是GROOVY GString类, 叫做string interpolation, 里面的var是在runtime的时候eval的.

其他的... 应该还有很多, 比如:
if (x==5) 是可以的
if (x=5) 编译error
if ((x=5)) 又是可以的
while (x=5) 也是可以的

要详细看看GROOVY的SPECS :"]
thiner 2007-07-23
我检查过了,确实是版本问题。
非常感谢各位的回复。:)
Global site tag (gtag.js) - Google Analytics