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 是一种基于 Java 语言的脚本语言,运行在 JVM 中,语法与 Java 相似,但抛弃了 Java 的一些烦琐的语法规则,提供了更加简洁和灵活的编程体验。 Groovy 的特点 1. 简洁的语法:Groovy 语法...
Groovy是一种基于Java虚拟机(JVM)的动态编程语言,它的设计目标是结合静态语言的效率和动态语言的灵活性。Groovy与Java语法相似,但更为简洁,减少了程序员的编码工作量,尤其适合快速开发和脚本编写。 在开发...
Groovy基础教程源码涵盖了Groovy语言的各个方面,是学习和理解Groovy语言的宝贵资源。下面将详细阐述Groovy的一些核心知识点。 1. **动态类型与静态类型**: Groovy支持动态类型,这意味着变量在声明时无需指定...
"OFBiz开发者装备系列:0005"可能是一个关于OFBiz开发的学习资料系列,其中的"Groovy中文教程.pdf"可能是该系列的一部分,提供了详细的Groovy语言学习内容,适合对OFBiz开发感兴趣的Java开发者阅读。而"OFBiz其它资源...
#### 五、Groovy的语法特点 **松散的Java语法**: - 在Groovy中,可以省略分号和修改符,使得代码更加简洁。 - 所有内容默认为public,除非明确指定了其他访问级别。 **简洁的代码风格**: - Groovy通过减少冗余...
### Groovy Script 入门知识点详解 #### 一、Groovy脚本简介 Groovy是一种灵活的面向对象的编程语言,它运行在Java平台上。由于其语法简洁且与Java高度兼容,因此对于Java开发者来说非常容易上手。Groovy不仅支持...
### Groovy中文教程知识点概述 #### 一、Groovy简介与快速入门 ##### 1.1 使用Groovy - **Groovy** 是一种基于 **Java虚拟机 (JVM)** 的编程语言,它提供了简洁的语法,并且兼容Java的类库。Groovy能够直接运行在...
### Groovy 1.7 官方教程知识点详解 #### 一、Groovy简介 - **定义**:Groovy是一种灵活且动态的语言,专为Java虚拟机(JVM)设计。 - **特点**: - **继承优势**:在保留Java强项的基础上,引入了更多来自Python...
7. **Grails**:Groovy的一个著名应用是Web框架Grails,它使用Groovy语言和DSL来加速开发过程,提供模型-视图-控制器(MVC)架构。 8. **Gradle**:构建工具Gradle的默认脚本语言就是Groovy,它结合了Ant的灵活性和...
Groovy 是一种基于Java平台的面向对象语言。Groovy 的语法和 Java 非常的相似,可以使用现有的 Java 库来进行 Groovy 开发。可以将它想像成 Java 语言的一种更加简单、表达能力更强的变体。
本篇教程是关于Groovy编程语言中布尔(Boolean)类型的详细讲解,其中涉及到布尔类型的定义、使用以及Groovy对于布尔值操作的特殊规则。 首先,布尔类型是编程语言中一种基础的数据类型,用于表示逻辑上的真值,...
这篇Groovy入门教程由杨宏焱在2009年5月撰写,主要介绍了Groovy的基础知识和开发环境的配置。 首先,Groovy被定义为下一代的Java语言,它与Java兼容并运行在相同的平台上。Groovy的语法与Java相似,但更简洁,避免...
例如,Groovy可以通过定义新的语法结构来创建一个用于配置应用程序的DSL,这样不仅减少了编写常规配置文件的工作量,还增强了代码的表达力。 #### 使用Groovy构建DSL的优势 1. **代码量减少**:通过定义特定领域的...
Groovy支持常用的控制结构,包括if-else条件语句,for、while和do-while循环结构。这些控制结构的使用与Java类似,但Groovy的语法更为简洁。 switch语句: Groovy的switch语句可以使用任何类型作为表达式,包括字符...
apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望大家多多下载,apache-groovy-3.0.8.zip apache官网的groovy3.0.8版本,希望...
本文将深入探讨Groovy的基本操作,包括语法特性、数据类型、控制结构以及与其他Java工具的交互。 1. **语法特性** Groovy的语法比Java更加简洁,它支持方法和变量的自动声明,以及类似Python的缩进风格。例如,...
- **控制结构**:支持常见的流程控制语句如`if`、`for`、`while`等。 - **函数与方法**:支持定义函数和方法,包括闭包的使用,闭包是Groovy的一个强大特性,它允许创建可传递的匿名函数。 - **异常处理**:提供异常...