加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

初学groovy知识浅谈

发布时间:2020-12-14 16:47:44 所属栏目:大数据 来源:网络整理
导读:1、简介 groovy是java的衍生语言,java中的语法很多在groovy中是可以用的,但是groovy语言更简单,更容易懂 2、map groovy中的map相当与Python中的字典,其中每个元素是键和值组成的。键作为索引,键指向值 map的定义方法:def map(名称) = ['键1':'值1','
1、简介
groovy是java的衍生语言,java中的语法很多在groovy中是可以用的,但是groovy语言更简单,更容易懂
2、map
groovy中的map相当与Python中的字典,其中每个元素是键和值组成的。键作为索引,键指向值
map的定义方法:def map(名称) = ['键1':'值1','键2':'值2']
向map中添加元素的方式
1、map = map + ['键3':'值3']
2、使用put方法:map.put(键3':值3) ? ?注:使用put方法时值不需要加引号
3、直接追加:map.键 = '值' ? ? ? ? ? ? ? ?注:此处键不需要加引号

3、collection集合
groovy中的collection相当于Python中的元组和列表的结合体,支持下标、负索引操作
collection的定义方法:def collection(名称) = ["元素1","元素2"]
向collection中添加元素的方式:
1、使用add方法:collection(名称).add(元素3)
2、使用左移运算符“<<”:collection名称<<'元素4'
3、利用下标方式进行添加:collection(名称)[collection(名称).size()] = '元素5'

4、遍历
在groovy中使用each进行遍历,例如对collection进行遍历,格式如下:
collection(集合名称例如:string).each{println it}
上面就是对collection进行遍历,并打印每个元素,it是现定义的变量,每个元素都赋值给it然后打印,再进行循环

5、for循环
在groovy中for循环的使用方法和其他语言类似,只是格式不同
格式:JAVA正统写法:for(i = 0;i<5;i++){执行语句}
? ? ? ? ? ?groovy写法:for(i in 0..5){执行语句} ? ? ? ?注:还可以使用“..<”这样的写法,自己动手试试
以上两种写法都可以完成从0到5的循环

6、string类型
在groovy中,string分为两种,一种是在''中,一种是在""中
对string数据进行操作就像操作List类(数组)一样,支持下标操作
例如:def str = 'abcdefg'
println str[1,3,5] ? ? ? ? ?结果为:dbf
println str[1..3] ? ? ? ? ? ?结果为:bcd

7、闭包
groovy中的闭包可以当成是函数来运用,也可以单独定义。常用闭包对集合进行迭代
格式:def ?closure = {参数1,参数2 -> 执行语句}
闭包的参数声明写在‘->’符号前,调用闭包的的标准写法是:闭包名.call(闭包参数)
例如:
def map = ['name':'john','age':'14','sex':'boy']
map.each({key,value->
println "$key:$value"}) ? ? ? ? ? ?//第一个println
map.each{println it} ? ? ? ? ? ? ? ?//第二个println
map.each({println it.getKey() + "-->" + it.getValue()}) ? ? ? ? ? ?//第三个println,此处getKey()和getValue()是两个方法,一定要注意大小写
这三种println都是用each方法,第一种是采用闭包的形式
上面代码的输出结果为:

name:john
age:14
sex:boy
name=john
age=14
sex=boy
name-->john
age-->14
sex-->boy
8、断言assert
断言就是来判断项目的结果是否符合预期,如果符合就继续,不符合就报错
例如:
c = {value1 -> def it =789;[value1,it]}
assert c(456)==[456,789]
c = {-> def it = 789;it}
assert c() == 789

以上的例子中有两个断言(assert),第一个用来判断当闭包c中的参数为456时,闭包c的值应该是[456,789]
如果我们第一行断言内容为:assert c(456)==[456,7890],运行程序的时候就会出现如下图显示的错误,告诉我们断言报错了!
Exception thrown
Assertion failed:
assert c(456)==[456,7890]
? ? ? ? ? ?| ? ? ? ? |
? ? ? ? ? ?| ? ? ? ? false
? ? ? ? ? ?[456,789]
? ? ? ? ? ? ? ? at ConsoleScript85.run(ConsoleScript85.2)

9、类class
groovy中的类概念与JAVA中的类概念一致,完全可以把它当做java中的类去理解,只是语法相对简单
例如:
class Person{ ? ? ? ? ? ? ? ? ? ? ? ?//定义类
? ? def name ? ? ? ? ? ? ? ? ? ? ? ? //定义类的两个属性
? ? def age
? ? String toString(){ ? ? ? ? ? ?//不管这两个属性输入的是什么,都转换成字符串
? ? "$name,$age"
? ? }
}
def person1 = new Person()
person1.name = 'xiaomin'
person1.age = '36' ? ? ? ? ? ? ? ? ? ? ? ?//标准的初始化对象,并给对象赋值
println person1
def person2 = new Person(['name':'furong','age':'36']) ? ? ? ? ? ?//groovy中特有的初始化对象并赋值
println person2

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读