1.hello world
class Example {
static void main(String[] args) {
// Using a simple println statement to print output to the console
println('Hello World');
}
}
2.导入语句
import groovy.xml.MarkupBuilder
def xml = new MarkupBuilder()
Groovy在代码中默认进行了导入,因此不需要显式引入它们:
import 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
3.注释
-
//行注释 -
/**/块注释
4.分号
分号分隔语句
5.标识符
用来定义变量,函数等。以字母,美元符号,下划线,数字组成,数字不能开头。
6.关键字
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
7.内置数据类型
- byte - 这是用来表示字节值。例如2。
- short - 这是用来表示一个短整型。例如10。
- int - 这是用来表示整数。例如1234。
- long - 这是用来表示一个长整型。例如10000090。
- float - 这是用来表示32位浮点数。例如12.34。
- double - 这是用来表示64位浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.3456565。
- char - 这定义了单个字符文字。例如“A”。
- Boolean - 这表示一个布尔值,可以是true或false。
- String - 这些是以字符串的形式表示的文本。例如,“Hello World”的。
8.表示范围
| 数字 | 范围 |
|---|---|
| byte | 8位 |
| short | 16位 |
| int | 32位 |
| long | 64位 |
| float | 32位 |
| double | 64位 |
9.数字类
数字类型的包装类
- java.lang.Byte
- java.lang.Short
- java.lang.Integer
- java.lang.Long
- java.lang.Float
- java.lang.Double
高精度计算的类:
| 名称 | 描述 |
|---|---|
| java.math.BigInteger | 不可变的任意精度的有符号整数数字 |
| java.math.BigDecimal | 不可变的任意精度的有符号十进制数 |
10.变量
10.1.变量声明
- 变量可以直接用基本类型声明
- 或者使用
def关键字声明
10.2.变量命名
- 变量名称可以有字母,数字或下划线组成,不能用数字开头
- 区分大小写
11.运算符
11.1.运算符类型
- 算数运算符
- 关系运算符
- 逻辑运算符
- 位运算符
- 赋值运算符
11.2.算数运算符
| 运算符 | 描述 | 例子 |
|---|---|---|
| + | 两个操作数的加法 | 1 + 2 将得到 3 |
| - | 第一第二操作数相减 | 2 - 1 将得到 1 |
| * | 两个操作数的乘法 | 2 * 2 将得到4 |
| / | 两个操作数的除法 | 3/2 将得到 1.5 |
| % | 取模运算 | 3%2 将得到 1 |
| ++ | 自增运算,在自身值的基础上加1 | INT X = 5; X ++; X 将得到 6 |
| -- | 自减运算,在自身值的基础上减1 | INT X = 5; X - -; X 将得到 4 |
11.3.关系运算符
| 运算符 | 描述 | 例子 |
|---|---|---|
| == | 测试两个对象之间是否相等 | 2 == 2 将得到 true |
| != | 测试两个对象之间是否不等 | 3 != 2 将得到 true |
| < | 检查是否左边的对象是小于右边的对象。 | 2 < 3 将得到 true |
| <= | 检查是否向左对象是小于或等于右边的对象 | 2 <= 3 将得到 true |
| > | 检查是否左边的对象比右边的对象大。 | 3 > 2 将得到 true |
| >= | 检查是否向左对象大于或等于右边的对象。 | 3>= 2 将得到 true |
11.4.逻辑运算符
| 运算符 | 描述 | 例子 |
|---|---|---|
| && | 这是逻辑“与”运算 | true && true 得到 true |
| || | 这是逻辑“或”运算 | true || true 得到 true |
| ! | 这是逻辑“非”运算 | !true 得到 false |
11.5.位运算符
| 运算符 | 描述 |
|---|---|
| & | 与 |
| | | 或 |
| ^ | 异或 |
| 〜 | 按位反 |
11.6.赋值运算符
| 运算符 | 描述 | 例子 |
|---|---|---|
| += | A += B 等价于 A = A + B | DEF A = 5 A += 3 输出将是8 |
| -= | A -= B 等价于 A = A - B | DEF A = 5 A -= 3 输出将是2 |
| *= | A *= B 等价于 A= A * B | DEF A = 5 A *= 3 输出将是15 |
| /= | A /= B 等价于 A = A / B | DEF A = 6 A /= 3 输出将是2 |
| (%)= | A (%)= B 等价于 A = A % B | DEF A = 5 A %= 3 输出将是2 |
11.7.范围运算符
..是范围运算符,用来定义一个包含两个端点的范围。
class Example {
static void main(String[] args) {
def range = 5..10;
println(range); // [5, 6, 7, 8, 9, 10]
println(range.get(2)); // 7
}
}
11.8运算符优先级
| 运算符 | 名称 |
|---|---|
| ++ - + - | 预增/减,一元加,一元减 |
| * / % | 乘法,除法,取模 |
| + - | 加法,减法 |
| ==!= <=> | 等于,不等于,比较 |
| & | 二进制/位运算符与 |
| ^ | 二进制/位异或 |
| | | 二进制/按位或 |
| && | 逻辑和 |
| || | 逻辑或 |
| = ** = * = / =%= + = - = << = >> = >>> = = ^ = | = | 各种赋值运算符 |