Groovy簡(jiǎn)明教程

HelloGroovy

Groovy入門級(jí)案例及簡(jiǎn)單說(shuō)明

  • author: 老機(jī)長(zhǎng)
  • quality pighead
  • time: 2017/04/27
  • update: 2017/05/09
  • version: 1.4.0

什么是Groovy

  • Groovy是Java平臺(tái)上設(shè)計(jì)的面向?qū)ο缶幊陶Z(yǔ)言
  • Groovy的語(yǔ)法與Java非常相似,以至于多數(shù)的Java代碼也是正確的Groovy代碼
  • Groovy代碼動(dòng)態(tài)地被編譯器轉(zhuǎn)換成Java字節(jié)碼。由于其運(yùn)行在JVM上的特性,Groovy可以使用其他Java語(yǔ)言編寫的庫(kù)
  • Groovy擁有類似Python、Ruby和Smalltalk中的一些特性,可以作為Java平臺(tái)的腳本語(yǔ)言使用

為什么要用Groovy ? 腳本語(yǔ)言有哪些 ? 而不用Python Ruby 等腳本語(yǔ)言呢 ?

  • 答案在于 Gradle 的運(yùn)行環(huán)境. 雖然 Gradle 以一個(gè)通用構(gòu)建工具為核心, 但是它的重點(diǎn)是Java項(xiàng)目. 在這樣的項(xiàng)目中, 顯然團(tuán)隊(duì)每個(gè)成員都對(duì) Java 非常熟悉. 我們認(rèn)為構(gòu)建應(yīng)盡可能對(duì)所有團(tuán)隊(duì)成員都是透明的, 所以選擇了 Groovy.

  • 你可能會(huì)說(shuō),為什么不直接使用 Java 作為構(gòu)建腳本的語(yǔ)言. 我們認(rèn)為這是一個(gè)很有用的問(wèn)題. 對(duì)于你的團(tuán)隊(duì), 它要有最高的透明度和最低的學(xué)習(xí)曲線, 也就是說(shuō)容易掌握. 但由于 Java 的限制, 這樣的構(gòu)建語(yǔ)言不會(huì)那么完美和強(qiáng)大. 而像 Python,Groovy 或 Ruby 語(yǔ)言用來(lái)作為構(gòu)建語(yǔ)言會(huì)更好. 我們選擇了 Groovy 是因?yàn)樗o Java 開(kāi)發(fā)人員提供了迄今為止最大的透明度. 其基本的符號(hào)和類型與 Java 是一樣的,其封裝結(jié)構(gòu)和許多其他的地方也是如此. Groovy 在這基礎(chǔ)上提供了更多的功能, 而且與 java 有共同的基礎(chǔ).

安裝Groovy

Mac/Linux方式

1.Homebrew 安裝方式

brew install groovy

2.MacPorts 安裝方式

sudo port install groovy

Windows方式

官方下載地址:Groovy 下載地址,點(diǎn)擊下載解壓至磁盤即可

note:預(yù)先配置環(huán)境變量

創(chuàng)建Groovy工程

1.執(zhí)行命令

gradle init --type java-library

2.在build.gradle文件中,添加 Groovy 插件

apply plugin: 'groovy'

3.在dependencies task內(nèi)部添加依賴配置,如下

compile 'org.codehaus.groovy:groovy-all:xxx'

Groovy相關(guān)語(yǔ)法

默認(rèn)導(dǎo)入包集合:

  • java相關(guān)包:
    • java.lang
    • java.util
    • java.io
    • java.net
    • java.math.BigDecimal
    • java.math.BigInteger 等
  • groovy相關(guān)包:
    • groovy.lang
    • groovy.util 等

Java的JDK VS Groovy的GDK

  • 普通標(biāo)識(shí)符
    語(yǔ)法與C語(yǔ)言類似,只能以字母、美元符號(hào)$、下劃線開(kāi)頭等;不能以數(shù)字開(kāi)頭

    • def name
    • def $name
    • def _name
  • GString

    • Java 單引號(hào)定義char類型變量,雙引號(hào)定義字符串
    • GString 支持單引號(hào)定義字符串,不支持占位符操作;
    • GString 支持雙引號(hào)支持占位符,$A.B屬性調(diào)用 ,${A+B}替代字符串或者表達(dá)式使用;
    • GString 支持三重單引號(hào)可定義多行文字</li>
  • 字符串

    • 單引號(hào)字符串
    • 雙引號(hào)字符串
    • 三重單引號(hào)字符串
    • 有沒(méi)有三重雙引號(hào)字符串呢 ?
  • 引用標(biāo)識(shí)符

    • map
    • list

參考 :BaseLearning.groovy

  • Process 操作

參考 StringLearning.groovy.runCMD()

  • 安全操作符,三目運(yùn)算符(雙目運(yùn)算符)
    • person ?. name
    • preson ?: "defaultName"

參考 StringLearning.groovy.checkNullString()

  • 多賦值()

參考 StringLearning.groovy.multiValue()

  • 靈活初始化

參考 ClassLearning.groovy

  • 布爾型求值

  • list 及 map集合

參考 ListLearning.groovy

參考 MapLearning.groovy

參考 EachLearning.groovy

  • Groovy快捷Api初探

參考 EachLearning.groovy

  • 閉包
是groovy.lang.Closure 的實(shí)例,像一段代碼塊或者方法指針

如何定義一個(gè)閉包:

{ [closureParameters -> ] statements }

//[closureparameters -> ]是可選的逗號(hào)分隔的參數(shù)列表,參數(shù)類似于方法的參數(shù)列表,這些參數(shù)可以是類型化或非類型化的。

Example:

{i++}

{-> println it}

{a -> a++}

{String str,int i -> println str + i}


閉包的調(diào)用:
closure(params)

closure.call(params)

參考 :ClosureLearning.groovy

  • File文件操作

參考 FileLearning.groovy

  • Json

參考 JsonLearning.groovy

  • XML

參考 XmlLearning.groovy

實(shí)戰(zhàn)分析

資料來(lái)源

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Boot 參考指南 介紹 轉(zhuǎn)載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 47,275評(píng)論 6 342
  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,588評(píng)論 19 139
  • 前言 由于項(xiàng)目需要用到 Groovy 語(yǔ)言,這兩天對(duì)其進(jìn)行了粗略的學(xué)習(xí),本文是對(duì)學(xué)習(xí)做的一個(gè)簡(jiǎn)單總結(jié),主要內(nèi)容參考...
    簡(jiǎn)單的土豆閱讀 189,921評(píng)論 12 201
  • Groovy是一門基于JVM的動(dòng)態(tài)語(yǔ)言,很多語(yǔ)法和Java類似。大部分Java代碼也同時(shí)是合法的Groovy代碼。...
    樂(lè)百川閱讀 3,721評(píng)論 0 15
  • Android Studio作為Android應(yīng)用開(kāi)發(fā)的官方IDE,默認(rèn)使用Gradle作為構(gòu)建工具,所以對(duì)于An...
    feil0n9wan9閱讀 1,773評(píng)論 1 6

友情鏈接更多精彩內(nèi)容