groovy 语法之变量

groovy 语法之变量

本文前提:已经熟悉kotlin语法和java语法。

变量

没有基本类型变量,只有对象(封装)类型变量,虽然我们可以像java中那样定义变量,但即使我们用基本类型变量关键字来定义变量,结果也会是封装类型变量,例如int定义会变成Integer类型,这点我们可以打印变量的类来验证:

执行:

int a = 1;
println a.class

我们可以得到如下结果:

class java.lang.Integer

强类型变量定义类似java,若类型变量定义使用def关键字,定义方式类似kotlin的 val a = 0 之类的,与kotlin的区别是def定义的变量类型可动态发生改变,例如:

def a = 1;
println a.class

a = 1.1
println a.class

可以得到如下结果

class java.lang.Integer
class java.math.BigDecimal

由此我们可以验证def关键字定义的变量类型会随着赋值不同而自动发生改变,这与某些弱类型的语言的变量几乎是一样的,最起码从表面上看是这样。

字符串类型变量

字符串类型变量除了类似kotlin字符串模板、有格式的字符串、反斜杠转义之外,还可以直接使用单引号定义字符串,这点与kotlin和java都不相同

我们还可以直接使用[]来拿到字符串某个索引下标的字符内容,以及某个范围的字符串,例如

def a = "abcdef"
println a[0]
println a[5]
println a[1..3]

结果如下:

a
f
bcd

字符串比较

这里除了直接用compareTo方法之外,我们还可以使用比较运算符 >, <, == 来做比较,这是因为groovy作了运算符重载,java不能这么用,然而kotlin我们也可以自己编写类似的运算符重载,只不过kotlin官方没有给我们提供(大小于没有,等于运算有)。

def a = "abc", b = "abd"
println a>b
println a<b
println a==b

结果如下:

false
true
false

可以看到大小比较是按字典顺序的比较

变量大致就这样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值