缀访 发表于 2025-10-1 21:49:43

【Groovy】变量和基本数据类型

1 变量

​    1)变量的声明
int a = 1
def b
def c = 1​    在脚本中定义变量无需声明变量的类型,如下。在类不能使用以下方式定义变量,否则会编译报错。
a = 1
b = "abc"​    2)变量命名规范

[*]变量名可以由字母、数字、下划线(_)和美元符号($)组成,但是不能以数字开头,且大小写敏感。
[*]不能有空格、@、#、+、-、/ 等符号。
[*]应该使用有意义的名称,达到见名知意的目的,最好以小写字母开头。
[*]不能与 Groovy 语言的关键字或是基本数据类型重名。
​    3)可变类型变量
​    使用 def 声明的变量是可变类型变量。以下变量赋值是合法的。
def a = new Object()
a = 1
a = 1f
a = "xyz"
a = new StringBuffer()​    以下变量赋值是非法的。
int a = 1
a = "abc"2 基本数据类型

​    Groovy 中基本数据类型主要有空类型(void)、整数类型(byte、short、int、long、BigInteger)、浮点类型(float、double、BigDecimal)、字符类型(char)、字符串类型(String)。
2.1 空类型

2.1.1 void 和 null

​    Groovy 中空类型用 void 表示,空值用 null 表示,与 java 的使用方法一样,如下。
BigInteger a = null
def b = null

void fun1() {
    /***/
}

Object fun2() {
    return null
}2.1.2 安全访问符(?.)

​    安全访问符(?.)用于告诉编译器:如果对象非空才访问点后面的内容,否则不做任何处理。
String a = "abc"
println(a?.substring(1)) // 打印: bc

String b = null
println(b?.substring(1)) // 打印: null2.1.3 Elvis 运算符(?:)

​    Elvis 运算符(?:)用于告诉编译器:如果 ?: 前面的值为 null,就取 ?: 后面的值。
String a = "abc"
String b = a ?: "xyz"
println(b) // 打印: abc

String c = null
String d = c ?: "xyz"
println(d) // 打印: xyz2.2 数字类型

2.2.1 整数类型

​    1)整数类型变量
类型大小(位)最小值最大值案例byte8-128127byte a = 1short16-3276832767short a = 1int32-2,147,483,648                         (-2^31)2,147,483,648(2^31-1)int a = 1                         def a = 100                         def a = 100I                         def a = 100ilong64-9,223,372,036,854,775,808(-2^63)9,223,372,036,854,775,807                         (2^63-1)long a = 1                         def a = 12345678901                         def a = 100L                         def a = 100lBigInteger——————BigInteger a = 1                         def a = new BigInteger('123')                         def a = 1G                         def a = 1g​    2)整数的进制表示
// 二进制(以0b开头)
def a = 0b101
// 八进制(以0开头)
def a = 0765
// 十六进制(以0x开头)
def a = 0x8af​    3)数字分割
def a = 1_23_456_7
def b = 1.23_456_7
def c = 0xFF_FF_FF​    4)times
4.times {
    println(it) // 打印: 0、1、2、3
}

4.7.times {
    println(it) // 打印: 0、1、2、3
}​    说明:Groovy 中的 times 函数与 Kotlin 中的 repeat 函数有些类似。
2.2.2 浮点类型

​    1)浮点类型变量
类型大小(位)符号位(S)/                         阶码(E)/                         尾数(M)最小值/                         最大值/                         最小正数有效位数案例float321S + 8E + 23M-3.4028235E38                         3.4028235E38                         1.4E-456float a = 1.0                         def a = 1.0F                         def a = 1.0fdouble641S + 11E + 52M-1.7976931348623157E308                         1.7976931348623157E308                         4.9E-32415double a= 1.0                         def a = 1.0D                         def a = 1.0dBigDecimal————————BigDecimal a = 3.14                         def a = new BigDecimal('3.14')                         def a = 3.14G                         def a = 3.14g​    浮点数编码原理详见 → 浮点数编码原理。
​    2)浮点数科学计数法
double a = 1e2 // 100.0
double a = 2E1 // 20.0
double a = 2e+3 // 2000.0
double a = 3E-2 // 0.032.2.3 运算符

运算符描述作用域优先级案例+加法整数/浮点数作为一元运算符时,优先级为1                         作为二元运算符时,优先级为31 + 2 ⇒ 3-减法整数/浮点数作为一元运算符时,优先级为1                         作为二元运算符时,优先级为31 - 2 ⇒ -1*乘法整数/浮点数22 * 3 ⇒ 6/整除/除法整数/浮点数23 / 2 ⇒ 1                         3.0 / 2 ⇒ 1.5                         3 / 2.0 ⇒ 1.5%取余整数/浮点数27 % 3 ⇒ 1++加1整数/浮点数1a++(先使用, 后加1)                         ++a(先加1, 后使用)--减1整数/浮点数1a--(先使用, 后减1)                         --a(先减1, 后使用)=赋值所有类型9a = 1+=加赋值整数/浮点数9a += 1 ⇔ a = a + 1-=减赋值整数/浮点数9a -= 2 ⇔ a = a - 2*=乘赋值整数/浮点数9a *= 3 ⇔ a = a * 3/=除赋值整数/浮点数9a /= 4 ⇔ a = a / 4%=取余赋值整数/浮点数9a %= 5⇔ a = a % 52.3 布尔类型

2.3.1 布尔类型

类型大小(位)取值案例boolean1true / falseboolean a = true                         def a = false                         boolean a = 100 // true                         boolean a = -100 // true                         boolean a = 0 // false2.3.2 运算符

运算符描述作用域优先级案例==等于整数/布尔/字符11 == 2 // false                         1 == 1 // true!=不等于整数/布尔/字符11 != 2 // true                         1 != 1 // false</tdtd小于/tdtd整数/浮点数/字符/tdtd1/tdtd1 < 2 // true/td/trtrtd>大于整数/浮点数/字符11 > 2 // false= 2 // falsein在范围内整数/字符13 in 1..9 // true                         9 in 1..
页: [1]
查看完整版本: 【Groovy】变量和基本数据类型