Groovy轻松入门
2012-08-08 12:15:19 来源:WEB开发网核心提示:三个"号之间不再需要+号进行连接(不过字符串中的格式都会被保留,包括回车和tab),Groovy轻松入门(2), 5、一切皆对象 听起来像是“众生平等”的味道,事实上groovy对于对象是什么类型并不关心, 10、集合 Groovy支持最常见的两个java集合:java.util.Co
三个"号之间不再需要+号进行连接(不过字符串中的格式都会被保留,包括回车和tab)。
5、一切皆对象
听起来像是“众生平等”的味道,事实上groovy对于对象是什么类型并不关心,一个变量的类型在运行中随时可以改变,一切根据需要而定。如果你赋值给它boolean,那么不管它原来是什么类型,它接受boolean值之后就会自动把类型转变为boolean值。看下面的代码:
def var = "hello " +
"world" +
",groovy"
println var
println var.class
var=1001
println var
println var.class
var=false
println var
println var.class
输出结果是
hello world,groovy
class java.lang.String
1001
class java.lang.Integer
false
class java.lang.Boolean
var这个变量在程序运行中,类型在改变。一开始给它赋值String,它的类型就是String,后来给它赋值Integer,它的类型就是Integer,最后给它赋值Boolean,它的类型就是Boolean。
6、循环
删除源文件下的所有内容,用一下内容代替
static void main(String[] args) {
def var = "hello " +
"world" +
",groovy"
repeat(var)
}
def static repeat(val) {
for(i=0;i<5;i++) {
println val
}
}
输出结果是:
hello world,groovy
hello world,groovy
hello world,groovy
hello world,groovy
hello world,groovy
注意循环变量i前面没有def。当然也没有java中常见的int,但是如果你非要加上int也不会有错,因为Groovy 1.1beta2之后开始(不包含1.1beta2),groovy开始支持java经典的for循环写法。
此外,上面的for语句还可以写成:
for(i in 0..<5)
这样的结果是一样的。
7、String和Gstring
除了标准的java.lang.String以外,groovy还支持Gstring字符类型。把上面的for循环中的语句换成:
println "This is ${i}: ${val}"
输出:
This is 0: hello world,groovy
This is 1: hello world,groovy
This is 2: hello world,groovy
This is 3: hello world,groovy
This is 4: hello world,groovy
8、范围
在前面的for循环介绍中我们已经使用过的for(i in 0..5) 这样的用法,其实就是一个范围。
范围是一系列值。例如“0..4”表示包含整数0、1、2、3、4.Groovy还支持排除范围,“0..<4”表示0、1、2、3.还可以创建字符范围:“a..e”相当于a、b、c、d、e。“a..<e”包括小于e的值。
9、默认参数值
还可以为方法指定默认参数值。修改repeat方法的定义:
def static repeat(val, repeatNum=3) {
for(i in 0..<repeatNum) {
println "This is ${i}: ${val}"
}
}
可以看到,repeat方法增加了一个参数repeatNum(并给了一个默认值3),用于指定循环次数。当我们不指定第二个参数调用repeat方法时,repeatNum参数取默认值。
10、集合
Groovy支持最常见的两个java集合:java.util.Collection和java.util.Map。前面所说的范围实际也是一种(java.util.List)。
(1)Collection
Groovy中这样来定义一处collection:
def collect=["a","b","c"]
除了声明时往集合中添加元素外,还可以用以下方式向集合中添加元素:
collect.add(1);
5、一切皆对象
听起来像是“众生平等”的味道,事实上groovy对于对象是什么类型并不关心,一个变量的类型在运行中随时可以改变,一切根据需要而定。如果你赋值给它boolean,那么不管它原来是什么类型,它接受boolean值之后就会自动把类型转变为boolean值。看下面的代码:
def var = "hello " +
"world" +
",groovy"
println var
println var.class
var=1001
println var
println var.class
var=false
println var
println var.class
输出结果是
hello world,groovy
class java.lang.String
1001
class java.lang.Integer
false
class java.lang.Boolean
var这个变量在程序运行中,类型在改变。一开始给它赋值String,它的类型就是String,后来给它赋值Integer,它的类型就是Integer,最后给它赋值Boolean,它的类型就是Boolean。
6、循环
删除源文件下的所有内容,用一下内容代替
static void main(String[] args) {
def var = "hello " +
"world" +
",groovy"
repeat(var)
}
def static repeat(val) {
for(i=0;i<5;i++) {
println val
}
}
输出结果是:
hello world,groovy
hello world,groovy
hello world,groovy
hello world,groovy
hello world,groovy
注意循环变量i前面没有def。当然也没有java中常见的int,但是如果你非要加上int也不会有错,因为Groovy 1.1beta2之后开始(不包含1.1beta2),groovy开始支持java经典的for循环写法。
此外,上面的for语句还可以写成:
for(i in 0..<5)
这样的结果是一样的。
7、String和Gstring
除了标准的java.lang.String以外,groovy还支持Gstring字符类型。把上面的for循环中的语句换成:
println "This is ${i}: ${val}"
输出:
This is 0: hello world,groovy
This is 1: hello world,groovy
This is 2: hello world,groovy
This is 3: hello world,groovy
This is 4: hello world,groovy
8、范围
在前面的for循环介绍中我们已经使用过的for(i in 0..5) 这样的用法,其实就是一个范围。
范围是一系列值。例如“0..4”表示包含整数0、1、2、3、4.Groovy还支持排除范围,“0..<4”表示0、1、2、3.还可以创建字符范围:“a..e”相当于a、b、c、d、e。“a..<e”包括小于e的值。
9、默认参数值
还可以为方法指定默认参数值。修改repeat方法的定义:
def static repeat(val, repeatNum=3) {
for(i in 0..<repeatNum) {
println "This is ${i}: ${val}"
}
}
可以看到,repeat方法增加了一个参数repeatNum(并给了一个默认值3),用于指定循环次数。当我们不指定第二个参数调用repeat方法时,repeatNum参数取默认值。
10、集合
Groovy支持最常见的两个java集合:java.util.Collection和java.util.Map。前面所说的范围实际也是一种(java.util.List)。
(1)Collection
Groovy中这样来定义一处collection:
def collect=["a","b","c"]
除了声明时往集合中添加元素外,还可以用以下方式向集合中添加元素:
collect.add(1);
更多精彩
赞助商链接