Groovy基本语法(2)
发布时间:2020-12-14 16:55:21 所属栏目:大数据 来源:网络整理
导读:4、静态import ? ? ? 我是最早在.net framework 3.5上使用类似 import?static 这种语法的,用起来相当方便的说,但JDK一直没有引入这玩意儿,按道理说加上这么个小功能是很容易实现的。不过Groovy倒是带来来功能更强大的import static语法,用起来也很方便:
4、静态import ? ? ? 我是最早在.net framework 3.5上使用类似import?static这种语法的,用起来相当方便的说,但JDK一直没有引入这玩意儿,按道理说加上这么个小功能是很容易实现的。不过Groovy倒是带来来功能更强大的import static语法,用起来也很方便: package plswg.edu.groovy.basic // 将Integer类的MAX_VALUE静态成员变量引入 import static Integer.MAX_VALUE // 将Double类的parseDoubl静态成员方法引入 import static Double.parseDouble // 给静态引入赋予别名 import static Boolean.TRUE as T // 将Boolean.TRUE取名为T import static Boolean.FALSE as F // 将Boolean.FALSE取名为F // 给静态引入的方法赋予别名 import static Calendar.getInstance as now // 代码中凡是用到MAX_VALUE,指的都是Integer.MAX_VALUE println MAX_VALUE // 代码中凡是用到parseDouble,指的都是Double.parseDouble s = "123.123" println parseDouble(s); // 代码中凡是使用T的地方表示true,使用F的地方表示false println T println !T println F // 代码中凡是使用now的地方表示Calendar.getInstance println now().get(Calendar.HOUR)? ? ? 这玩意儿的主要作用就是避免重复书写哪些又臭又长的类名,随着JDK类库的不断增加,类名字是越来越长,像造句一样,import static恰好解决了这一问题,还是很贴心的。 5、分支结构语句 ? ? ? Groovy的结构化语句仍旧是三种:顺序结构、分支结构和循环结构,其中分支结构和循环结构增加了很多意想不到的功能,先看分支结构: package plswg.edu.groovy.basic // groovy中if条件分支的新规定 // groovy中,非0的数值可以表示true int num = 0 if (num) { println "True" } else { println "False" } println (++num ? "True" : "False") if (!!num) { // !!运算符可以将num转化为boolean类型 println "num=${num}为${!!num}" } println "" // 引用为null时,表示false Object o = null if (o) { println "True" } else { println "False" } o = new Date() if (o) { println "True" } else { println "False" } println "" // 字符串为""时,表示false String s = "" if (s) { println "True" } else { println "False" } s += "hello" if (s) { println "True" } else { println "False" } println "" // 集合为空时,表示False ArrayList array = new ArrayList() if (array) { println "True" } else { println "False" } array.add(100) if (array) { println "True" } else { println "False" } println "" // groovy中switch选择分支的新规定 // switch对字符串类型的支持 print "Please input your words: " s = new BufferedReader(new InputStreamReader(System.in)).readLine() switch (s) { case "how are you": println "fine,thank you" break; case "how do you do": println "how do you do too" break; default: println "nice to meet you" } // switch对集合和范围的支持 n = new Random().nextInt(101) print "you got ${n} point," switch (n) { case [98,99,100]: // n为98,100这三个数字时 println "very good!!" break; case 90 .. 97: // n为90-97之间时 println "nice job!!" break; case 70 .. 89: // n为70-89之间时 println "good" break; case 60 .. 79: // n为60-79之间时 println "can be better" break; case {it > 0 && it < 60}: // n比0大且比60小时 println "too bad" break; case 0: // n为0时 println "nothing to say" break; }? ? ? ?首先,Groovy对boolean类型放宽了限制:
? ? ? Groovy中对于switch语句的修改也是非常夸张的,这让我甚至有些怀疑Groovy中的switch是否还能达到O1的执行效率,因为Groovy的swtich表现的太像嵌套的if...else if了,在例子中,switch的case后面可以跟随如下几种玩意儿:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |