Groovy 要点

  1. Groovy的单行注释、多行注释、文档注释基本和Java一样,但它还支持一种脚本常用注释,需注意

    #!/usr/bin/env groovy
    println "Hello from the shebang line"
    
  2. Groovy会默认导入一些包,因此我们不需导包即可直接使用

    java.io.*
    java.lang.*
    java.math.BigDecimal
    java.math.BigInteger
    java.net.*
    java.util.*
    groovy.lang.*
    groovy.util.*
    
  3. Groovy中的"{...}"块是为闭包而保留的,因此不能使用"{...}"语法创建数组字面量

    // 错误!!!
    int [] array = {123}
    
    // 正确创建数组的方式
    int [] array = [1,2,3]
    
  4. Java里的==等同于Groovy里的is()方法,Groovy中的==则相当于equals(),可用于比较字符串的内容

  5. Groovy中所有类型都能转成布尔值,比如nullvoid、0相当于false,其他则相当于true

    // Java代码写法
    if (name != null && name.length > 0) {}
    
    // Groovy写法
    if (name) {}
    
  6. 不想关心try块里抛出何种异常,只想简单的捕获所有异常并省略异常类型

    try {
        // ...
    } catch (any) {
        // something bad happens
    }
    
  7. import时起别名

    import java.awt.List as aList
    
  8. 非空操作符?.,可省略大量if判断,避免空指针异常

    println order?.customer?.address
    
  9. 简化三目运算

    // 完整三目运算
    def result = name != null ? name : "Unknown"
    
    // 简化版
    def result = name ?: "Unknown"
    
  10. 使用with()省略调用,类似Dart的级联操作

    // Java 写法
    server.name = application.name
    server.status = status
    server.sessionCount = 3
    server.start()
    server.stop()
    
    // Groovy 写法
    server.with {
        name = application.name
        status = status
        sessionCount = 3
        start()
        stop()
    }
    

公众号“编程之路从0到1”

20190301102949549

Copyright © Arcticfox 2021 all right reserved,powered by Gitbook文档修订于: 2022-05-01 12:20:20

results matching ""

    No results matching ""