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

Groovy学习笔记(2)-基本语法

发布时间:2020-12-14 16:42:56 所属栏目:大数据 来源:网络整理
导读:声明一个变量: def age=25 声明一个方法: def someMethod(para1,para2=0,pare3=0){ def total=para1+para2+para3 //;分号省略,推荐带上。 total //或者 return total} 调用方法: someMethod(5,6) //3个参数可只传2个,第三个参数采用默认值 列表List是一

声明一个变量:

def age=25

声明一个方法:

def someMethod(para1,para2=0,pare3=0){
    def total=para1+para2+para3 //;分号省略,推荐带上。
    total  //或者 return total
}

调用方法:

someMethod(5,6) //3个参数可只传2个,第三个参数采用默认值

列表List是一种用来存储数据项集合的数据结构,可以存放不同类型的值,可以用+连接2个列表,或-操作符删除元素

def list=[11,13,"Tom",17]

//list的加法
list+["Tom"]

//list的减法
list-[13]

//添加元素
list<<"hello"
list.add("world") 

//去除重复元素
list.unique()

//集合反转
list.reverse()

//排序
list.sort()

//list求和 
list.sum()

//取出最大值和最小值 
list.max()

//元素筛选
def arr5=[3,8,9,10,5,6]  
println arr5.grep{  
    it>6  
}

//求交集
def arr2=["北京","上海"]  
def arr3=["上海","宁波"]  
println arr2.intersect(arr3)

//join方法  
def array=[1989,12,25]  
println array.join("-")  
println array[1,2].join("-")

映射Map是一种引用对象的无序集合,也就是大家熟悉的组合数组、词典、表格、散列

//初始化一个集合
def students=['Jack':24,'Tom':22]

//定义一个空集合  
def m=[:]  

//设置集合的内容,其中name,age为key  
m.name="Lucy"  
m.age=16  
m.height=165

//这种方式也可以向map中添加元素  
m.put("sex","女")

//取得集合的内容(单个)  
println m.get("name")  
m.each { it ->  
    println it.key+","+it.value  
}

//删除集合元素  
m.remove("height")  
println m.get("sex")  
println m.get("height")

范围Range是表达式特定虚列值的一种简略形式

def range1=100...200		//包含边界
def range2=100...<200		//不包含边界

//是否包含一个元素
assert (0..10).contains(5) == true

//集合大小
assert (0..<10).size() == 10

//获取指定范围内的元素
assert [22,33,44,55,66].grep((21..50)) == [22,44]

//迭代闭包
def str = ''
(9..5).each{element->
    str+=element
}
println(str)  -> "98765"

//在switch case语句中使用
age = 36
switch (age){
    case 10..26:
        rate =0.05;break
    case 27..36:
        rate = 0.06;break
    case 37..46:
        rate =0.07;break
    default:
        throw new IllegalArgumentException()
}
assert rate==0.06

(编辑:李大同)

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

    推荐文章
      热点阅读