Groovy笔记1

本文深入探讨了Groovy语言的关键特性,包括字符串插值、表达式计算、闭包的使用(无参和有参)、延迟加载以及数值类型的二进制、八进制和十六进制表示。此外,还讨论了String与GString的区别,以及正则和多行文本的表示。最后,介绍了Groovydoc的使用方法,为代码添加文档注释。
摘要由CSDN通过智能技术生成


groovy version 3.0.7,java 1.8

Groovydoc

使用/**@…*/定义文档

/**@
 * Some class groovydoc for Foo
 */
class Foo {
    /**@
     * Some method groovydoc for bar
     */
    void bar() {
    }
}

关键字

在这里插入图片描述

插值(interpolation)

双引号可以值替换,单引号不可以

class Test {
    static void main(String[] args) {
        def name = "xiaoming"
        println "name :${name}"
        println 'name :${name}'
    }
}
name :xiaoming
name :${name}

表达式计算

println "1 + 2 = ${1 + 2}"
// 1 + 2 = 3

反斜杠取消插值

assert '${1 + 2}' == "\${1 + 2}"

无参闭包

def sParameterLessClosure = "1 + 2 == ${-> 3}"
assert sParameterLessClosure == '1 + 2 == 3'

有参闭包

def sOneParamClosure = "1 + 2 == ${ w -> w << 3}"
assert sOneParamClosure == '1 + 2 == 3'

闭包延迟加载

def number = 1 
def eagerGString = "value == ${number}"
def lazyGString = "value == ${ -> number }"

assert eagerGString == "value == 1" 
assert lazyGString ==  "value == 1" 

number = 2 
assert eagerGString == "value == 1" 
assert lazyGString ==  "value == 2" 

String vs GString

String和GString的hashCode不同,GString不要用于Map的键值

        def key = "a"
        println "${key}".hashCode() // 134
        println "a".hashCode() // 97
        def map = ["${key}":"value"]
        assert map["a"] == null

斜杠

斜杠可以用来定义正则、定义多行文本,也和双引号一样可以值替换

		def value= "world"
        def pattern = /.Abc*/
        assert pattern == '.Abc*'
        def lines = /111
hello ${value}
333
/
        print lines
111
hello world
333

特例,下面代码编译不通过,双斜杠不等于空字符串
assert ‘’ == //

字符串总结

字符串总结

二进制

二进制以0b开头

byte xByte = 0b11
assert xByte == 3 as byte

八进制

八进制以0开头

int i = 011
assert i == 9 as short

十六进制

十六进制以0x开头

int xInt = 0x77
assert xInt == 119

数值类型后缀

可以通过后缀指定数值类型
数值类型后缀

assert 42i == new Integer('42')

List

        def list = [1, 2, 3]
        assert list instanceof List
        assert list.size() == 3

        def notTheSameTypeList = [1, "a", true]
        notTheSameTypeList.each {
            println it
        }
1
a
true
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值