groovy入门

x=1
assert x==1
x=new Date()
println "The time now: ${x.toString()}"
//将语句嵌入字符串里面,很方便,注,单引号不行

mylist=[1,2,4,1.234]
println mylist[0]
//1
//列表,其实就是一个arrayList
println mylist.getClass()
//java.util.ArrayList
println mylist.size()
//4
scores=["Brett":100,"Pete":"Nothing","Bob":45.23]
println scores.Bob==scores["Bob"]
//true
//map既可以用下标的方式,也可以用取属性的方式
scores.Pete=100
assert scores['Pete']==100
println scores["Pete"]
//100
//按key赋值

emptylist=[]
println emptylist
assert emptylist==[] && emptylist.size()==0

emptymap=[:]
println emptymap
assert emptymap==[:] && emptylist.size()==0
//空的列表,和空的映射,表示方法不一样

who='lily'
if (who=='lily')
{
 println who
}
//分支语句和java一样
assert 'abcd'<='abcde'
//比较操作符已经重载

d=0.1
println d
println d.getClass()
//java.math.BigDecimal

10.times { i ->print "$i "}
//打印 0到9

//grooovy中,没有checked exception 和unchecked exception的区别

def clos={println "Hello,world"}
clos()
clos()
//闭包,就是一段代码

def sum={a,b-> println a+b }
sum(1,2)
sum('a','b')
//可以带参数
def printIt={println "$it"}
printIt('default it param')
//默认有一个叫it的参数

def sum1={a,Object[]args -> args.each{v->a+=v};println a}
sum1(1,2,3,4)
//可变参数,只需让最后一个参数的类型是Object[]

def local=10
printLocal={println local;return local}
assert printLocal()==10
local=11
assert printLocal()==11
//闭包中,可以应用作用域的其他变量

list=['a','c','b']
upper=list.collect({it.toUpperCase()})
assert upper==['A','C','B']
//closure作为方法的参数
println upper
newlist=[]
list.collect(newlist,{it+'1'})
assert newlist==['a1','c1','b1']
assert newlist.collect(){it[0]} == ['a','c','b']
//当闭包作为函数最后一个参数时,可以这样定义

//闭包示例

list=[1,2,3,4,10,15]
assert list.any(){it<2}
//肯定至少有一个元素小于2

assert list.every(){it > 0}
//所有元素大于0

assert list.find(){it>2} == 3
//第一个大于2的元素是3

assert list.findAll(){it>4} == [10,15]
//所有大于4的元素,就是10 和15

assert list.collect{++it} == [2,3,4,5,11,16]

list.each { print it}
//打印所有元素
println ""
list.eachWithIndex {it,idx -> println "$idx:$it "}
//打印所有元素和下标

10.times{println "10 times $it"}
//执行10次

0.step(10,2){println "5 times $it"}
//执行了5次,0,2,4,6,8


println "done."

相关推荐