Groovy极简入门

Groovy是运行在JVM中的一门语言,有人说Ta是JVM中的Ruby,也有人说是JVM中的python,总之听上去是一个更加敏捷的Java。

文章目录

  • 基础
  • 与java的区别
    • 语法差别
    • 闭包
    • 命令链

基础

下载安装,除了安装路径之外一路Next即可。注意添加环境变量。
安装完毕之后在命令行中输入groovysh即可进入Groovy编程环境。也可以在开始菜单打开GroovyConsole,进入控制台。
对于Java程序员来说,几乎可以无痛插入Groovy技术,例如对于Java代码:

public class MyFirstCroovy{
    public static void main(String []args){
        System.out.println("Hello world");
    }
}

Groovy可以轻松运行,如图所示:
Groovy极简入门_第1张图片
除此之外,Groovy还拥有不必创建class的操作风格,例如在命令行中可以直接输入:

C:\Users\Laser>groovysh
九月 02, 2019 10:33:39 上午 java.util.prefs.WindowsPreferences <init>
Groovy Shell (2.5.8, JVM: 1.8.0_144)
Type ':help' or ':h' for help.
----------------------------------------------------------------------------
groovy:000> test = "hello world"
===> hello world
groovy:000> println test
hello world
===> null
groovy:000>

在groovy中,通过import导入包,需要注意的是,下面的包已经被导入,无需重新导入:

  • java.io.*
  • java.lang.*
  • java.math.BigDecimal
  • java.math.BigInteger
  • java.net.*
  • java.util.*
  • groovy.lang.*
  • groovy.util.*

与java的区别

语法差别

  • 不需要分号,但写上也不会报错
  • 可以不写return,此时默认返回方法最后一行的返回值
  • 数组初始化int[] array = [1,2,3],在Java中则为int[] array = {1,2,3}
  • def可以定义一切对象
  • 废除了do-while语句

闭包

Groovy中提供了闭包功能,有的语言中也叫匿名函数。在命令行中输入

groovy:000> def clos = {println "hello world"}{
groovy:001> clos.call()}
hello world
===> null

我们所定义的clos即一个闭包。我们也可以在脚本中写成java风格:

class closureTest {
   static void main(String[] args) {
      def clos = {println "Hello World"};
      clos.call();
   } 
}

命令链

所谓命令链,即在调用函数时,可以省略括号,这种写法在python2中似曾相识。在上面的代码中实际上也使用了这种方式,例如println test这条语句。
但是对于类中的方法并不适用,例如

groovy> def test(int a){  
groovy>     return a*2 
groovy> } 
groovy> test 15 
Result: 30

groovy> def range = 5..10 
groovy> println range.get 2 
Exception thrown
groovy.lang.MissingPropertyException: Exception evaluating property 'get' for groovy.lang.IntRange, Reason: groovy.lang.MissingPropertyException: No such property: get for class: java.lang.Integer
	at ConsoleScript3.run(ConsoleScript3:2)

而且当传入参数为空时,也不能省略括号。

你可能感兴趣的:(编程语言学习)