package helloworld import org.junit.*; import java.util.*; class HelloController { def index() { //def grailsVersion = grailsApplication.metadata['app.grails.version']; //render "Hello World!"+grailsVersion; //render grailsVersion; //def mySet = false; //def mySet = Boolean.FALSE; //if(mySet){ //render "true"; //}else{ //render "false"; //} //String str = null; //assert str_ = = null; //render "Hello world it is"+new java.util.Date() + grailsVersion; //String str = null; //assert str1 == null; //Groovy基本语法 //int i = 123 + 45 *67; //render i+"<BR>"; //def x = new java.util.Date(); //render x; //不能直接跟字符串,可能是数据类型问题 //render "<BR>"; //Boolean y = false; //render y+"<BR>"; //List和Maps //List myList = [1776, -1, 33, 99, 0, 928734928763]; //Groovy语法简介 //1 没有类型的java //仅仅要求变量名前使用关键字def(groovy jsr 1开始,在以前的版本中,甚至连def都不需要) def var = "hello world"; render var+"<BR>"; render var.class; //查看变量的类型 //对象输出后面不能跟+号字符链接符号 //作为例外,方法参数和循环变量的声明不需要def //2 不需要的public //3 不需要的语句结束符 //4 字符串链接符 def var2 = "hello world groovy!"; render "<BR>"+var2+"<BR>"; //5 一切皆有对象 def var3 = "hello "+ "world"+ ", groovy!"; render var3+"<BR>"; render var3.class; render "<BR>"; var3 = 1001; render "<BR>重新赋值后的类型:"; render var3.class; //6 循环 //def var4 = "hello "+ "world "+", groovy!"; //def repeat(val){ //for(i=0; i<5; i++){ //render val+"<BR>"; //} //} //repeat(var4); //这样直接循环错误哦 //7 String和Gstring def i=22; def val4="xlc"; //render "this is ${$val4}:${i}"; 不支持了 render "<BR>this is "+val4+":"+i+"<BR>"; //8 范围 def j=22; for (jj in 0..<5){ render jj; } //render "<BR><BR>"; //不成功 //for(jjj in a..<e){ //render jjj; //} //9 默认参数值 /*def repet(val, repeat=3){ for(i in 0..<repeat){ render "this is ...."; } }*/ //这个例子肯定运行不了 //10 集合 //Groovy支持最常见的两个java集合,java.util.Collection和java.util.Map //前面所说的范围实际也是集合的一种java.util.List //(1)Collection //添加 def collect = ["a","b","c"]; collect.add(1); collect<<"come on"; collect[collect.size()]=100.0; //输出 render collect[0]+"<BR>"; render collect[collect.size()-1]+"<BR>"; render collect.size(); for(i=0; i<collect.size(); i++){ render i+":"+collect[i]+"<BR>"; } //groovy支持负索引 render "-1:"+collect[-1]+"<BR>"; //索引其倒数第1个元素 render "-2:"+collect[-2]+"<BR>"; //索引其倒数第2个元素 //collection支持集合运算 collect = collect + 5; render collect[collect.size()-1]+"<BR>"; collect = collect-'a'; render collect[0]; //同样的,你可以往集合中添加另一个集合或删除一个集合 collect = collect-collect[0..4]; //把集合的前5个元素去掉 render collect[0]+"<BR>"; //现在集合中仅有一个元素,即原来的最后一个元素 render collect[-1]+"<BR>"; //也可以用负索引,证明最后一个元素就是第一个元素 } }
地址: http://blog.csdn.net/kmyhy/article/details/4200563