在给变量赋值是才会决定一个变量的类型
类型之间会自动转换。(String -> Int -> Integer)
可以把不同的基本类型放到同一数组中
闭包就是可以使用参数的代码片段
Groovy 不需要通过setter、getter引用类成员,那用什么?
不需要声明构造函数,只有两个构造函数,(1个不带参数的默认构造函数,1个只带一个map参数的构造函数—由于是map类型,通过这个参数可以构造对象时任意初始化它的成员变量)
方法调用可以省略(),构造函数除外
Groovy 默认导入的库:
1
2
3
4
5
6
7
8
9
10import java.lang.*
import java.util.*
import java.io.*
import java.net.*
import groovy.lang.*
import groovy.util.*
import java.math.BigInteger
import java.math.BigDecimal
Groovy 的关键词:
| as | assert | break | case |
| ——— | ———- | ————— | ————— |
| catch | class | const | continue |
| def | default | do | else |
| enum | extends | false | Finally |
| for | goto | if | implements |
| import | in | instanceof | interface |
| new | pull | package | return |
| super | switch | this | throw |
| throws | trait | true | try |
| while | | | |
范围运算符:
..
1
2
3
4
5
6
7class Example {
static void main(String[] args) {
def range = 5..10;
println(range);
println(range.get(2));
}
}
运算符优先级
下表按优先级顺序列出了所有groovy运算符
| 运算符 | 名称 |
| —————————————————————————— | ———————————- |
| ++ - + - | 预增/减,一元加,一元减 |
| / % | 乘法,除法,取模 |
| + - | 加法,减法 |
| ==!= <=> | 等于,不等于,比较 |
| & | 二进制/位运算符与 |
| ^ | 二进制/位异或 |
| | | 二进制/按位或 |
| && | 逻辑和 |
| || | 逻辑或 |
| = ** = = / =%= + = - = << = >> = >>> = = ^ = | = | 各种赋值运算符 |
默认参数
1
2
3
4
5
6
7
8
9
10class Example {
static void sum(int a,int b = 5) {
int c = a+b;
println(c);
}
static void main(String[] args) {
sum(6);
}
}上述方法的输出将为值 11。
如果使用非默认和默认参数,则必须注意,默认参数应在参数列表的末尾定义。