7. Groovy的控制结构
要理解groovy的控制结构,首先要明白其布尔值的判定。groovy借鉴了很多脚本语言,把数字0,空字符串,空集合等判定为false,除此之外null对象为false。
7.1 swith语句
groovy的swith语句支持很多类型,如下面的例子,实际上是调用了case条件中对象的isCase()方法,这里列举了以下实现isCase()方法的对象(注释中的是isCase()具体实现),你可以自定义改方法。
switch (10) { case 0: println '==0'; break // Integer.equals(10) case 0..9: println '[0,9]'; break // Range.contains(10) case [8, 9, 11]: println 'in [8, 9, 11]'; break // Collections.contains(10) case Float: println 'is Float'; break // 10 instanceof Float case { it % 2 == 1 }: println 'odd'; break // Closure.call(10) case ~/\d\s/: println "match /\\d\\w/"; break // Regular.matcher(10.toString()).matches(), Note: 10.toString() is called case '10': println 'is string 10'; break // String.equals(10.toString(); Note: 10.toString() called default: println 'nothing'; break } // output: is string 10
注意:如果没有break,即使case条件为false,后面的println语句也会执行。
另外集合的grep方法也用isCase()方法取交集
7.2 循环
groovy里有for和while循环,没有do-while。
groovy的for可以遍历实现Iterable的类,已知的有:range/collection/map/array/iterator/enumeration。
除此之外,for还可以遍历一个文件的行,正则表达式的匹配项,一个对象,甚至是null(不会报错,当然也不会循环)
file = new File(/H:\programs\grails-2.2.3\INSTALL/) for (line in file) { println line } for (n in null) { println 'this won\'t happen' } for (n in 10) { println n // output: 10 }
7.3 break,continue,return
这几个中断代码执行的逻辑和java一样,稍微要注意的是return在闭包中是可以省略的,默认返回最后一个表达式的结果,如果最后一个表达式没返回值,则返回null,另外就是循环中只是本轮循环结束,循环会继续。
7.4 try-catch-finally
异常捕获和java中是相同的。
相关推荐
Groovy 教程。简单的groovy教程。
Groovy入门教程[参照].pdf
Groovy入门教程 Groovy是一种基于JVM的敏捷开发语言,它结合了Python、Ruby和Smalltalk的许多强大的特性,Groovy 代码能够与 Java 代码很好地结合,也能用于扩展现有代码。由于其运行在 JVM 上的特性,Groovy 可以...
groovy基础教程源码,很全面tjureykjetyukmjyteytdeyhnjfgnjsfdghfdxhgsffgv bnvbn
groovy 1.7官方教程。groovy is a super version of Java
精通groovy ghy根据IBM教程整理 不可多得的好东西
Groovy 是一种基于Java平台的面向对象语言。Groovy 的语法和 Java 非常的相似,可以使用现有的 Java 库来进行 Groovy 开发。可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。
本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。
Groovy语法系列教程之注释.zip Groovy语法系列教程之注释.zip Groovy语法系列教程之注释.zip Groovy语法系列教程之注释.zip
Groovy in action中文版,与java无缝集成的快速脚本语言
Groovy 是基于Java的脚本语言。是Java语言扩展,因此可以与Java语言互相调用。在所有基于JVM虚拟机的语言中只有Scala可以媲美。使用Groovy可以快速灵活完成文本处理,数据库访问,XML处理等常见任务。研究表明,使用...
Groovy Script 入门 Groovy 脚本入门
OFBiz开发者装备系列:0005
本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。
你可能急着的编写一些Groovy 代码, 对吧? 好的, 首先,你必须安装Groovy. 在这章, 我将告 诉你如何快速安装 Groovy 并确保一切在你的系统上运行良好.
Groovy教程学习资料宣贯.pdf
[Groovy入门]第五讲.将流程控制语句与方法重构为闭包
本系列教程介绍Groovy编程语言的语法。Groovy的语法源自Java语法,但是通过特定类型对其进行了增强,并允许进行某些简化。
TutorialsPoint Groovy 教程.epub
Introduction to Groovy Groovy 的入门教程,了解Groovy的基本原理和结构!