Groovy学习笔记-陷阱

1.def和in是关键字

2.==映射到了equals() 中,如果有Comparable接口实现,则优先compareTo

str1 = ‘hello‘
str2 = str1
str3 = new String(‘hello‘)

str1 == str2 // true
str1.is(str2) // true

str1 == str3 // true
str1.is(str3) // false

3.传递闭包

class Calibrator{
    Calibrator(calcBlock){
        print ‘using....‘
        calcBlock()
    }
}

def calibrator = new Calibrator({
    println ‘provider 1‘
})

def calcBlock2 = { println ‘provider 2‘ }
def calibrator2 = new Calibrator(calcBlock2)

/*output
using....provider 1
using....provider 2
*/

4.int[] arr = [1,2,3,4] // arr type is int[]

def arr = [1,2,3,4] // arr type is ArrayList

时间: 2024-10-12 12:43:12

Groovy学习笔记-陷阱的相关文章

Groovy学习笔记(二)

在上一篇文章中我们主要学习了如何搭建Groovy开发环境,为我们的Groovy之旅做好了准备工作,不知道你是否准备好了?接下来我们就一起看看Groovy与我们熟悉的Java有什么异同. Groovy是轻量级的Java,它与Java的区别主要有六点,接下来我们一一讲解. 一:return语句和分号都是可选的. //Groovy Code def int add(a, b) { a + b } println add(1, 2) 控制台输出: 3 二:方法和类默认是public的. 三:?.操作符只

Groovy学习笔记(二)—— 从Java到Groovy

之前就有说过,很多人之所以选择Groovy就是因为其学习成本低,只要你有Java的基础,学起来相当快.与此对比的是Scala(另一种JVM动态语言)语法就比较难学(虽然还没学过,但是网上的评论是这样的). 作为一个Java程序员,我要逐渐把自己Groovy. 从JDK到GDK 1.JDK作为Java开发的核心,是所有Java程序员都需要学习和使用的部分.Groovy在设计GDK的时候非常贴心贴心贴心(重要的感情抒发三遍),GDK可以认为是JDK的扩展和超集,很多Java API在GDK里你都可以

Groovy学习笔记

Groovy控制台 Groovy编译:groovyc filename.groovy Groovy运行:groovy filename Groovy控制台:groovyConsole ? ? 默认导入 groovy.lang.* groovy.util.* java.lang.* java.io.* java.math.BigDecimal.* java.math.BigInteger.* java.net.* java.util.* ? ? 动态类型 1 2 3 4 5 x = new Dat

Groovy学习笔记(一)

1.1 安装Groovy Groovy主页:http://www.groovy-lang.org 确保本地系统安装了Java 1.1.1 在Windows系统上安装Groovy 1.创建环境变量GROOVY_HOME,其值为Groovy的目录(如:C:\programs\groovy\groovy-2.1.0). 2.将%GROOVY_HOME%\bin添加到path中. 3.确认下环境变量JAVA_HOME的值是否指向JDK的位置. 4.在命令行窗口输入groovy -v,确保报告的是正确的版

Groovy学习笔记(1)读取CSV文件

??本篇分享讲展示如何在Groovy中读取CSV文件. ??我们要读取的CSV文件foo.csv的内容如下: ??Groovy代码如下: //import packages import java.io.File // use @Grab() to download CSV package @Grab('org.apache.commons:commons-csv:1.2') import static org.apache.commons.csv.CSVFormat.RFC4180 // ge

Groovy学习笔记-Java 5新特性支持

1.枚举enum enum CoffeeSize{ SHORT, SMALL, MEDIUM, LARGE, MUG } def orderCoffee(size){ print "Coffee order received for size $size:" switch(size){ case [CoffeeSize.SHORT, CoffeeSize.SMALL]: println 'Conscious' break; case CoffeeSize.MEDIUM..CoffeeS

Groovy学习笔记-实现接口

1.单个委托方法的实现 button.addActionListener( { println 'Implement ActionListener' } as ActionListener ) 2.实现接口中的多个方法:使用映射,以每个方法的名字作为键,以方法对应的代码块作为键值,使用:分割方法名和代码块 handleFocus = [ focusGained : {msgLabel.setText("Good to see you")}, focusLost : {msgLabel.

Groovy学习笔记-使用多赋值

1.方法返回多个结果:返回数组,将多个变量逗号隔开,放在左侧圆括号中 def splitName (fullName) { fullName.split(' ') } def (firstName, lastName) = splitName('Tom Smith') println "$lastName, $firstName" /* output Smith Tom */ 2.交换变量:将欲交换的变量放在左侧圆括号内,右侧中括号相反顺序放置 def name1 = 'aaa' de

Groovy学习笔记-布尔求值

1.判断字符串为null或空字符串 def str = null if(str) println 'str is not null' else println 'str is null' str = '' if(str) println 'str is not null' else println 'str is null' /*output str is null str is null */ 2.集合是否为空或Count ==0 list = null if(list) println 'l