Groovy语法和使用大纲

1.数据类型

1.1.基本数据类型

(1)Groovy提供多种内置数据类型。以下是在Groovy中定义的数据类型的列表 -

  • byte -这是用来表示字节值。例如2。

  • short -这是用来表示一个短整型。例如10。

  • int -这是用来表示整数。例如1234。

  • long -这是用来表示一个长整型。例如10000090。

  • float -这是用来表示32位浮点数。例如12.34。

  • double -这是用来表示64位浮点数,这些数字是有时可能需要的更长的十进制数表示。例如12.3456565。

  • char -这定义了单个字符文字。例如“A”。

  • Boolean -这表示一个布尔值,可以是true或false。

  • String -这些是以字符串的形式表示的文本。例如,“Hello World”的。

groovy中数据类型默认装箱,所以其等价于

  • java.lang.Byte
  • java.lang.Short
  • java.lang.Integer
  • java.lang.Long
  • java.lang.Float
  • java.lang.Double

 

就比如下面代码,可以看到a的class是Integer

int a=3
Integer a1=new Integer(3)
/*class java.lang.Integer
true*/
println(a.class)
println(a==a1)

(2)除了像Java中明确的生命类型以外。groovy中特别之处在于可以使用类似于其他脚本中的var来声明变量,运行时确认变量类型

def var

var=1
var="hello"
var=new Person()

(3)详情可查考官网和第三方网站

 

 

 

1.2循环控制

(1)强大的switch

def x=1.23
def result
switch (x){
    case 'foo':
        result='hihi'
        break
    case [1,2,2,3,5,'ninihao']:
        result=1
        break
    case 1..3:
        result=true
        break
    case Integer:
        result="integer"
        break
    case 1.23f:
        result="int"
        break
    case BigDecimal:
        result=1
        break
    case 1.23d:
        result="int"
        break
    default:
        result="default"
        break
}

case条件可以是任何内容,我们定义一个1.23在groovy中默认是java.math.BigDecimal,但是在使用比较可以看出,和double类型是==的。

println(x==1.23f)
println(x==1.23d)
println(x==1.23)
println(x.class)
println(1.23d.class)

结果是

false
true
true
class java.math.BigDecimal
class java.lang.Double

(2)多样的for

范围类型:1..9就是1到9,还可以使用

1..<9

来表示边界不包含9.

对应的for(i in 1..9)

当然最平常的就是

for (int i = 0; i < 9; i++) {
    
}
for (i in [1, 2, 3, 4, 5, 6, 7, 8,9]) {
    
}

groovy中list,map,数组,都是使用[ ],这个表达式

for (i in ['name':'vode','age':22]) {
    
}

(3)还是一样的while

 

 

1.3闭包

闭包就是{ }就和C#里面是差不多的以及Java的代码块

def clos1={
    println("hello vode")
}
//这个是普通调用闭包
clos1.call()
//还可以像方法一样调用
clos1()

闭包也可以像方法一样传递参数,就像这样

//->前面是参数,后面是闭包方法体
def clo2={
    String name->println("hello ${name}")
}
clo2('vode')

对于多个参数,可以这样,注意到这里${name},$age取值其实也是一个闭包{ }在这里可以省略

def clo3={
    String name,int age->println("hello ${name},$age")
}
clo3('vode',22)

需要注意一点就是,对于所有的闭包,都有一个默认参数it,取值就是${it},

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值