Gradle series 5-Groovy lenguaje gramática básica

Este resumen se centra principalmente en la implementación de código

Definición gramatical básica

package top.zhexi.groovy

println "===========基本语法定义=========="
//变量的声明
def name = "test"
age = 20

//调用带参数的方法时可以省略括号
println(name + " " + age)
println name + " " + age

//断言assert
assert age == 19

Salida de la operación:

===========基本语法定义==========
test 20
test 20
Caught: Assertion failed: 

assert age == 19
       |   |
       20  false

Assertion failed: 

assert age == 19
       |   |
       20  false

	at top.zhexi.groovy.Grammer.run(Grammer.groovy:13)

Process finished with exit code 1

Definición de cadena

println "=========字符串的定义==========="
str1= 'test'  //定义普通的字符串
str2 = "test2 : ${str1}" //可以引用变量
str3 = '''三个单引号 name : test
ange : 30'''      //按格式定义的字符串

println str1
println str2
println str3

Salida de ejecución:

=========字符串的定义===========
test
test2 : test
三个单引号name : test
ange : 30

Definición de colección

println "=========集合的定义==========="
//list集合,使用[]来声明集合
def list = ["t1", "t2", "t3"]
//给list集合添加元素
list.add("add元素")
list << "新元素"
println list
println list.getClass() //查看定义的集合类型

//Map 映射,使用[key:value]方式定义
def map = ['name': '小明', 'age': 18]
// 给map赋值
map.put('email', 'xiaomi@test')
//使用点key的方式来赋值
map.gender = "boy"
println map
println map.getClass()

Resultado de salida:

=========集合的定义===========
[t1, t2, t3, add元素, 新元素]
class java.util.ArrayList
[name:小明, age:18, email:xiaomi@test, gender:boy]
class java.util.LinkedHashMap

Cierre

println "===========闭包============"
def c1 = {
    println '不带参数的闭包'
}

def c2 = {
    val ->
        println "带参数的闭包: ${val}"
}

//定义方法形参是指定类型,接收不带参数的闭包方法
def method1(Closure clo) {
    //两种方式都可以
    clo()
    clo.call()
}
//定义方法形参无指定类型,接受带参数的闭包的方法
def method2(closure) {
    closure("小明")
    closure.call("call小明")
}
//调用方法,传入已经定义好的闭包
method1 c1
method2 c2
// 调用方法时,直接定义新的闭包
method1 ({
    println "无参数新闭包,带括号"
})

method1 {
    println "无参数新闭包,不带括号"
}

method2 {
    val->
        println "带参数新闭包, ${val}"
}

Resultado de salida:

===========闭包============
不带参数的闭包
不带参数的闭包
带参数的闭包: 小明
带参数的闭包: call小明
无参数新闭包,带括号
无参数新闭包,带括号
无参数新闭包,不带括号
无参数新闭包,不带括号
带参数新闭包, 小明
带参数新闭包, call小明

La comparación de valores nulos no arroja una excepción de puntero nulo


println "=======空值比较不抛出空指针异常======="
def testval = null
println  testval.equals(null)

Resultado de salida:

=======空值比较不抛出空指针异常=======
true
Publicado 159 artículos originales · 22 alabanzas · 90,000+ visitas

Supongo que te gusta

Origin blog.csdn.net/ytuglt/article/details/104971235
Recomendado
Clasificación