1.Grovvy的注释分为//和/**/和java的一样.
2.Grovvy语法可以不已分号结尾.
3.单引号,里面的内容严格的对应java中的String,不对$符号进行转义.
def s1 = 'i am a student $' println s1 i am a student $4.双引号“ ”的内容中如果有$号的话,会先对表达式先求值.
def age = 100 def s2 = "他已经 $age 岁了" println(s2) 他已经 100 岁了5.三个引号中的字符串支持随意的换行.
def s3 = ''' x y z ''' println(s3) x y zGrovvy中支持动态类型,定义变量的时候可以不指定类型,Grovvy中可以使用关键字def.
def a = 1 def b = "我是谁" def double = 1.0注意:
1.无返回类型的函数定义,必须使用def关键字 ,最后一行代码的执行结果就是本函数的返回值
2.如果指定了函数返回类型,则可不必加def关键字来定义函数
断言变量为空
def t1 = null assert t1断言变量的长度
def t2 = "ab3" assert t2.size() >3注意:
1.如果断言发生,断言后面的代码无法执行
方式一
for (i=0;i<5;i++){ println i }方式二
for(i in 0..5){ println i }其它
for(i in 0..<5){ println ("hello world") }times表示从0开始循环到4结束
4.times { println it }asType就是数据类型转换
def g1 = '1' def f1= g1 as int def f2 = g1.asType(Integer) println f2Groovy中的数据类型主要分2种
一个是Java中的基本数据类型。
另外一个是Groovy中的容器类。
最后一个非常重要的是闭包。
List
def aList = [5,'string',false] println aList println aList[0] println "集合的长度:"+aList.size() aList[10] = 'sss' println aList [5, string, false] 5 集合长度:3 [5, string, false, null, null, null, null, null, null, null, 'sss'] 集合长度:11map
def map = [key1:"value1",key2:"value2",key3:"value3"] println map println "map的长度:"+map.size() println map.keySet() println map.values() println map.key1 println map.get("key1") map.put("key4","value4") println map.entrySet() Iterator it = map.iterator() while(it.hasNext()){ println "遍历map:"+it.next() } map.containsKey("key1") map.containsValue("values1") map.clear() Set set = map.keySet()Range 是 Groovy 对 List 的一种拓展.
def range = 1..5 println range println "长度:"+range.size() println "迭代器:"+range.iterator() println "获取标号为1的元素:" +range.get(1) println "是否包含元素5:"+range.contains(5) println "最后一个元素:"+range.last() //println "移除标号为1的元素:"+range.remove(1) //清空列表 //range.clear() println "第一个数据:"+range.from println "最后一个数据:"+range.to模板
def xxx = {paramters -> code} //或者 def xxx = {无参数,纯code} def fun1 = { p1 -> def s = "我是一个闭包,"+ p1 } println(fun1.call()) println(fun1.call("我是一个参数")) println fun1("我是参数2")闭包没定义参数的话,则隐含有一个参数,这个参数名字叫it,和this的作用类似。it代表闭包的参数。
def fun2 = { it -> "abcd" } println fun2.call()如果在闭包定义时,采用下面这种写法,则表示闭包没有参数!
def fun3 = { -> "cccc" } println fun3.call()each函数调用的圆括号不见了!原来,Groovy中,当函数的最后一个参数是闭包的话,可以省略圆括号。比如:
def fun5(int a1,String b1,Closure closure){ closure() } fun5(5,"test",{ println "i am in closure" })以后这样代码会比较多:
task hello{ doLast{ println("hello world") } }案列1:
//字符串与闭包的结合使用 String str2 = 'the 2 and 4 is 6' //each str2.each { String temp ->println temp } //find来查找符合条件的第一个 println str2.find{ String s -> s.isNumber() } //findAll def sList = str2.findAll{ String s1 -> s1.isNumber() } println sList //any def result = str2.any{ String s -> s.isNumber() } println result //collect def list2 = str2.collect { it.toUpperCase() } println list2.toListString()
转载于:https://www.cnblogs.com/cleveraboy/p/10269798.html
相关资源:数据结构—成绩单生成器