當前位置:
首頁 > 最新 > Groovy基本語法-注釋及標識符

Groovy基本語法-注釋及標識符

"冰凍三尺,非一日之寒"

中華文明上下五千年,老祖宗們在漫長歲月中積累沉澱的治理名言,文字已經錘鍊得出神入化。誠如"冰凍三尺,非一日之寒"。學習是一個漫長積累的過程,每天進步一點點,日積月累,貴在堅持。

廢話不多說,我們來開始學習Groovy語法。

Groovy的語法源自Java語言的語法,但是做了很多簡化,從語言層面上就比Java敏捷。由於知識點比較多,篇幅有限,我們分成幾部分來講,主要是舉一些例子,幫助童鞋們理解用法及加深印象。

注釋

Groovy中的注釋語法與Java語言語法完全一致,單行注釋使用雙斜線 // 來表示注釋的開始,一直到行尾,即遇到換行符之前都是單行注釋的內容,

同樣多行注釋使用 /* 符號開始, 之後所有的字元,包括換行符,直到遇到第一個 */ 符號之間的內容,都是多行注釋。

例:

// 這是獨立的單行注釋

println "Hello world." // 跟隨在語句後的單行注釋

/* 只有一行的多行注釋 */

/*

跨行的多行注釋

*/

println /* 在語句中間的多行注釋 */ "Hello world."

println "Hello world." /* 在行尾的多行注釋 */

文檔注釋

如果使用Java做過開發的童鞋一定知道JavaDoc的重要性。平時我們查找Java API文檔是看到的內容,就是JavaDoc工具從Java代碼的文檔注釋提取並生成的。

Groovy同樣也支持文檔注釋,語法也和JavaDoc一樣, 使用 /** 開始,可以跨多行,直到遇到第一個 */ 符號結束。通常文檔注釋被用於描述類型定義,如類、介面、枚舉、欄位及屬性的描述、方法定義等。

例:

/**

* 文件工具類,提供對目錄、文件的基本操作。

* 本工具類簡化文件及目錄的創建、刪除、更新等操作,也支持這些操作的監聽事件及處理回調。

* @version 1.0

*/

class FileUtils {

/** 事件回調定義 */

def eventCallback

/**

* 遞歸刪除指定路徑下的文件及目錄

* @param path 指定路徑,必須是一個目錄

* @return 被刪除的文件總數

* @throws IOException 當無法進行刪除操作,則拋出IOException

*/

long removeDir(String path) throws IOException {

...代碼略

}

}

從例子可以看出,這是一個工具類,簡化文件操作,並可以很明確地知道,有一個刪除目錄的方法,並且這個方法能夠刪除指定目錄下包括子目錄的所有文間。

所以說文檔注釋對於開發者有著非常重要的作用。當我們寫出一個功能而需要別人調用的時候,清晰的文檔會事半功倍。甚至長時間以後,開發者本身也會忘記當初自己代碼為什麼要這麼寫,所以要記住,代碼是寫給人看的,不是讓機器看的,機器只是按照預定的邏輯執行而已。

開發的過程中,一定要寫注釋!

開發的過程中,一定要寫注釋!

開發的過程中,一定要寫注釋!

重要的事情說三遍!

Shell聲明注釋

在Unix/Linux/MacOS操作系統下,編寫過腳本文件一定會記得腳本文件第一行要用

來聲明此腳本的執行環境。同樣,前面我們通過安裝包安裝了Groovy環境,並且在命令行已經可以執行了,以後就可以把Groovy腳本當作Shell腳本來用。

方法就是創建一個 shell 腳本,第一行聲明為

這個腳本文件就可以按照Groovy語法來寫。

例如我們創建一個名為 test.sh 的腳本文件並編輯,輸入內容如下:

#!/usr/bin/env groovy

println "Hello world."

保存腳本後,將腳本修改為可執行屬性,執行一下就可以看到結果了:

chmod +x test.sh

./test.sh

輸出結果:

Hello world.

如果做運維的童鞋,是不是感覺眼前豁然開朗,感覺又找到了一件大殺器:)

標識符

Groovy中標識符以字母,美元符號或下劃線開始,後面跟隨字母或數字組成的。字元範圍如下:

注意,Java平台下的字母是UTF-8範圍的,而不僅僅是ASCII 7的範圍,也就是說,如果願意,完全可以使用漢字作為標識符。

例如:

是完全沒有錯誤的寫法。

Groovy里規定,當在一個點符號後面,所有點關鍵字也是合法的標識符,通常這種用法用在一個對象上。

例如:

引用標識符

引用標識符出現在一個點式表達式的點後面,這點在Java語言中是不允許的。例如創建了一個user的對象,其中有一個loginId的屬性,就可以通過這種方式來引用,這是一個有趣的特性,我們來展示一種用法:

為了說明這個用法,不涉及到這個特性到代碼盡量用Java來定義了:

class User {

String loginId

String password

}

User user = new User()

user."loginId" = "a"

user."password" = "b"

String[] properties = new String[2]

properties[0] = "loginId"

properties[1] = "password"

for(String p : properties) {

println user."$"

}

assert user.loginId == "a"

assert user.password == "b"

這段代碼一開始定義了一個User類,包含兩個屬性 loginId 及 password,然後使用這個類創建出一個 user 對象並對兩個進行賦值,最後通過屬性名獲取對應的值。如果同樣的功能在Java中,只能通過反射進行操作,大大增加了複雜度。而且這段代碼並沒有完全按照Groovy語法來寫,如果完全按照Groovy語法來寫,會更加簡潔。

Groovy里,所有的字元串類型字面量都允許寫到 . 符號後作為引用標識符:

這幾種字元串類型,是Groovy相對Java改進里很多的一個功能,使得字元串類型好用多了。

因篇幅原因,欲知詳情,且聽下回分解。


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 全球大搜羅 的精彩文章:

記住這幾個點,羽絨服也能讓你又高又瘦

TAG:全球大搜羅 |