Groovy笔记(2)_表达式与运算符
表达式与运算符 ? 可参考Groovy in Action P64 ? 1、a==b 等价 a.equals(b) 2、Groovy的"===" 就是Java的"==" 3、Groovy支持操作符重载,重载运算符对应的方法就是操作符重载 4、<<操作符被重载,以支持向集合添加项。 5、?: 安全引用操作符(防止NullPointerException),在方法调用前面添加一个?就相当于再调用前面放了一个条件, ?????可以防止在null对象上调用方法。?操作符时刻都非常有用,可以极大地减少条件语句。 ? ? 基于方法的运算符 ?
? 字符串GString简介 ? 1、def str = 'hello/nclat'; print str //在同一行放多条语句 需用 ";" 分隔 ??????可以用双影,也可以用单影. 2、def name = 'clat' ???? print "/thello${name}" //如果字符串中需要用到变量,则必须用双影号。 3、原格式输出://三个单影号 ???? print ''' ????????????aaa ??????????? bbb ???? ''' 4、三个双引号,可解释其中的GString ??? def name='clat' ??? print """ ???????? aaa ?????????/tbbb ???????? ${name} ??? """ ? ? Groovy 方法一
def welcome1(name){ ? print "Hello${name}" } welcome1('clat') //输出: 'Hello clat' ? ? Groovy 方法二
def welcome2(name,welcomeStr='Welcome'){ ??? println "${welcomeStr} ${name}" } welcome2('clat') //输出 Welcome clat welcome2('clat','Good') //输出 Good clat
? 流程控制:循环 ? 1、def count =1; def limit = 5 ???? while(count <=limit){ ???????? println "count : ${count}" ???????? count++ ???? } 2、for( i=0;i<5;i++){ println 'Hello'} 3、for( i in [1,2,3,4,5]){ // 可以用在范围或映射或GString上 ????? print i } 4、break?和 continue 与Java一样 ? ? 流程控制:判断 ? 1、if(1){println 'good'} //输出: good 2、def a ??? if(a){println 'good'} ???else {println 'null'}//输出null 3、def b = [] ???? if(b){println 'good'} ???? else{println 'null'}//输出null 4、def c =[1:'Groovy',2:'clat'] ??? if(c) {println 'good'} ?? else {println 'null'} 5、if的条件除了是布尔值外,也可以使对象,如果对象是空则为false,否则为true ? switch ? 1、这里与Java一样 switch(4){ ? case 1: println 'One' ;break ? case 2: println 'Two' ;break ? case 3: println 'Three' ;break ? case 4: println 'Four' ;break ? default: println 'Default' }//输出 Four ? 2、结合的类型比Java多 // var 可以改为 12,10,2,1.5f,8,123,1234在运行 def var =0 switch(var){ ? cast?0;???????????????? print 'One' ? cast?11..20;???????? print 'One'??? // 11 到 20之间的值 ? cast?'10';???????????? print 'One' ? cast [1,3];????????print 'One'??? //匹配1,2,3 ? cast?Float;?????????? print 'One'?? //匹配1.5f ? cast?{it % 3 ==0};print 'One' //闭包,it闭包变量 如果var = 9,匹配 ? cast?~'[0-9]{3}';?print 'One'?? //正则? 匹配123 ??default:???????????????print 'Default' } ? ? 控制台输入输出 ? 1、读取标准输入:
2、标准输出
3、格式化输出: printf printf('%d-%f-/n[%s][%10s][%-10s]',[5,2.5,'clat,'clat','clat'']) %d: 按整型数据??? %f:按浮点型输出?????%s 字符串输出 %-10s: 宽度10,左侧输出字符串 ? 结果: 5-2.500000- [clat] [????? clat][clat????? ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |