Groovy

什么是Groovy

  Groovy是用于Java虚拟机的一种敏捷的动态语言,它是一种成熟的面相对象的编程语言,既可以用于面相对象编程,又可以用作纯粹的脚本语言。使用该种语言不必写过多的代码,同时又具有闭包和动态语言中的其它特性。

  Groovy是JVM的一个替代语言(替代是指可以用 Groovy 在Java平台上进行 Java 编程),使用方式基本与使用 Java代码的方式相同,该语言特别适合与Spring的动态语言支持一起使用,设计时充分考虑了Java集成,这使 Groovy 与 Java 代码的互操作很容易。(注意:不是指Groovy替代java,而是指Groovy和java很好的结合编程。

Groovy与Java比较

特点

  • Groovy完全兼容Java的语法
  • 分号是可选的
  • 类、方法默认是public的
  • 编译器给属性自动添加Getter/Setter方法
  • 属性可以直接用点号获取
  • 最后一个表达式的值会被作为返回值
  • Java中==比较的是两个对象的内存地址是不是同一个对象,而在Groovy中==等同于equals(),不会有NullPointerExceptions

示例代码

public class Cat{

    private String name

    public Cat(String name){
        this.name = name
    }

}
Cat cat = new Cat('波斯猫')

println cat.name

Cat cat2 = null

println cat2 == cat

显示结果

这里写图片描述

Groovy的高效特性

  • assert语句

  在任何地方都可以进行断言操作

  执行语句:

assert true

  执行结果:

这里写图片描述

  执行语句:

assert false

  执行结果:

这里写图片描述

  • 可选类型定义

  类型是可选的,相当于一个弱类型的编程语言直接def跟变量名即可,而变量的类型是根据后面的操作推导出来的

  示例语句:

def flag = true
def name = '张三'
  • 可选的括号:

  调用方法后面如果有参数的话,其括号是可以不写的

  执行语句:

def name = '张三'

println(name)
println name

  执行结果:

这里写图片描述

  • 字符串

  字符串有三种表示形式:分别是单引号、双引号、以及三个引号。

  执行语句

def s1 = 'World!'
def s2 = "Hello ${s1}"
def s3 = '''hell
world!'''
println s1
println s2
println s3

  执行结果:

这里写图片描述

  从上面我们可以看出,单引号中的内容可以直接显示,双引号中的内容可以传参,三引号中的内容可以换行。

  • 集合API

  List、Map在Groovy中有更简单的写法

  List集合

  执行语句

def list = ['张三','李四']
list << '王五'

assert list.size() == 3
assert list.getClass() == ArrayList
Iterator iterator = list.iterator()
while(iterator.hasNext()){
    println iterator.next()
}

  执行结果

这里写图片描述

  Map集合

  执行语句

def map = [id : 1,name : '张三']
map.age = 20

Iterator iterator = map.keySet().iterator()
while (iterator.hasNext()){
    println map[iterator.next()]
}

  执行结果

这里写图片描述

  • 闭包(closurs)

  闭包在groovy中是一个处于代码上下文中的开放的,匿名代码块。它可以访问到其外部的变量或方法。

  执行语句

def c = { v -> println v}

def method(Closure closure){
    closure('hello')
}

method(c)

  执行结果

这里写图片描述

参考来源:Groovy百度百科


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值