谁能解释一下为什么1a和2a行不能打印出整个范围,而1b、1c、2b和2c行可以?
脚本
println GroovySystem.version
def range = 1..5
printf "1a: range %s %n", range
printf "1b: range %s %n", range.toString()
printf "1c: range %s %n", range, ""
printf "2a: range %s %n", range.asList()
printf "2b: range %s %n", range.asList().toString()
printf "2c: range %s %n", range.asList(), ""
输出
3.0.9
1a: range 1
1b: range 1..5
1c: range 1..5
2a: range 1
2b: range 1..5
2c: range 1..5
我是groovy的新手,但我希望1a和1c是相同的(2a和2c也是如此)。
1条答案
按热度按时间cld4siwp1#
结果
printf的所有参数都以列表的形式传递。
所以,如果你只传递一个参数,那就是一个列表,那么列表中的每个元素都被认为是一个单独的参数。
这意味着
1a
和1b
是等价的这就是为什么所有的
1*
例子都只给出列表的第一个元素(范围)2c
显示了解决此问题的方法