初見groovy

groovy 中一切皆是對象

int a = 23
println a   //23

def aa = 33
println aa  //33

println a.class     //class java.lang.Integer
println aa.class    //class java.lang.Integer


def name = "fangfang"
def firstName = "yuanyuan"
println name.class          //class java.lang.String
println firstName.class     //class java.lang.String


def play(def str) {
    println str + ":==hello groovy"
}

play("xingmu")      //xingmu:==hello groovy

條件判斷

def play2(def b){
    if (b){
        println "hello world"
    }else{
        println "hello city"
    }
}

play2(true)   // hello world

list集合

// 定義list
def list = ["fangfang","yuanyuan"]
println "======根據下標獲取集合中的元素========="
println list[0]
println list[1]
println "======添加元素========"
list << "changchang"
list << "duanduan"
println "======開始遍歷========"
for(str in list){
    println str
}

執行結果

======根據下標獲取集合中的元素=========
fangfang
yuanyuan
======添加元素========
======開始遍歷========
fangfang
yuanyuan
changchang
duanduan

map集合

def map = ["fangfang":"方方","yuanyuan":"圓圓","changchang":"長長"]

println "======添加元素========"
map.duanduan="短短"
println "======獲取map值========"
println map.get("fangfang");
println map.get("duanduan");

println "======遍歷map集合========"
for(entry in map){
    println("key: " + entry.getKey()+" value: "+ entry.getValue())
}

執行結果

======添加元素========
======獲取map值========
方方
短短
======遍歷map集合========
key: fangfang value: 方方
key: yuanyuan value: 圓圓
key: changchang value: 長長
key: duanduan value: 短短

三種不同的引號的字符串

// 單引號定義的字符串和 java 中的一樣
println '==一般字符串================'
def name = 'this is \'a\' name'
println name.class
//用三個單引號來進行定義string類型,可以格式化輸出字符串
println '==可以格式化的字符串================'
def thuplename = '''this is name'''
println thuplename
println thuplename.class
def linename = '''
line one
line two
line three
'''
println linename
println linename.class
println ""

//雙引號定義的字符串可以擴展
println '==可以擴展的字符串================'
def kuoname = "name"
def helloname = "hello $kuoname"
println helloname
println helloname.class

執行結果

==一般字符串================
class java.lang.String
==可以格式化的字符串================
this is name
class java.lang.String

line one
line two
line three

class java.lang.String

==可以擴展的字符串================
hello name
class org.codehaus.groovy.runtime.GStringImpl

閉包

閉包就是groovy中一段代碼塊,主要是用來做爲參數在方法之間傳遞使用。

基本閉包語法
// 定義一個閉包
def closure = {
    println "hello groovy"
}

// 定義一個帶有閉包參數的方法
def play(Closure closure){
    // 執行閉包
    closure()
}

// 調用方法,傳遞參數
play(closure)   // hello groovy
帶參數的閉包
// 閉包
def closureWithParam = {
    param->{
        println "參數爲: " + param
    }
}

// 方法
def play(Closure closure){
    closure("groovy")
}

// 調用方法,傳遞參數
play(closureWithParam)   // 參數爲: groovy
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章