Groovy中的列表和Java的数组相似,如:
def numbers = [1, 2, 3, 4]
Groovy列表使用索引操作符[]来表示元素值,[]是List类的getAt方法的重载,用法和字符索引获取子字符串相似,同时列表之间可以进行+、-、赋值、<<等操作。
映射就是大家熟悉的键值对的无序集合,key值不能为变量,例如:
def x = 1
def y = 2
def m = [x : y, y : x] //m = ['x' : 2, 'y' : 1]
映射也是通过getAt方法获取索引的值的,同样也是使用putAt方法进行赋值:
def names = ['Rex' : 'Barclay', 'David' : 'Savage']
def divisors = [4 : [2], 6 : [3, 2], 12 : [6, 3, 2, 1]]
names['Rex'] //'Barclay' names.getAt('Rex')
names.Rex //'Barclay'
names['John'] //null
divisors[6] //[3, 2]
divisors[6] = [1] //[4 : [2], 6 : [1], 12 : [6, 3, 2, 1]]
从上面可以看出映射的键可以是String类型的,也可以是Integer类型的,同时这两种类型可以混用:
def names = [1 : 'Rex', '1' : 'David']
names[1] //'Rex'
names['1'] //'David'
范围是表达特定序列值的一种简略方法,有时可以当特定序列的数组用。
1..10 // 1, 2, 3, 4, ...., 10
10..1 // 10, 9, 8, ...., 1
1..<10 // 1, 2, 3, 4, ...., 9
'A'..'D' // A, B, C, D
def start = 10
def finish = 12
start..finish + 1 //[10, 11, 12, 13]
print "hello word"
println "hello word"
printf 'hello %s', 'word'
支持以上三种输出方式,print、println差别在print打印文本后不换行,都可以加上括号使用。printf用法和很多语言一致。
System.in.readLine() //获取输入的一行字符串,以换行结束,如果希望得到其他类型的数据,只需要之后toInteger(),......
Console.readString() //需要import console.*, 获取输入的字符串可以以空格结束
Console.readInteger()//获取Integer数据