開源技術教學文件網 在 Groovy 程式中使用變數 (Variable)

最後修改日期為 JAN 17, 2019

電腦程式很大一部分是在操作各種資料 (data),而變數 (variable) 是電腦程式用來操作資料的語法特性。在本文中,我們會學到 Groovy 程式如何使用變數。

在撰寫程式時,我們會將資料以識別字 (identifier) 來命名,在後續的程式中可呼叫該識別字來使用資料。在電腦程式中,程式調用的資料會存在記憶體中,變數相當於指向資料的標籤,但我們平常在寫程式時不需了解這些電腦程式內部運作的技術細節,只要把變數當成一項特性來使用即可。

我們以一個簡單的例子來看變數的使用:

// Declare the variable name, assigning a string to it.
def name = "Michelle"

// Call the variable, printing it out.
println "Hello ${name}"

def 是 Groovy 的保留字 (keyword),用來宣告變數。首先,我們宣告一個變數 name,這時候 name 就成為程式的識別字。我們在宣告變數的同時指派一個字串 "Michelle"name。接著,我們在後續的指令中呼叫此變數,將其印到終端機上。

由於 Groovy 是動態型別語言,變數的型別可自由改變。見下例:

// var is an integer
def var = 100

assert var == 100
assert var instanceof java.lang.Integer

// var is a string now
var = "Michelle"

assert var == "Michelle"
assert var instanceof java.lang.String

在這個範例中,一開始變數 var 是整數,其值為 100,後來,var 的型別變為字串,其值為 "Michelle"

在我們的程式中,我們用斷言 (assertion) 代替 println,因為這樣可以在閱讀程式碼時就知道程式的意圖,而且可由電腦程式自動確認程式的狀態正確與否。近年來的程式設計教材有用斷言取代輸出終端機的傾向,我們之後大部分程式碼也會用這種風格。

在本例中,透過 instanceof 可以得到變數 var 的類別 (class),在此處就是型別 (data type),我們會在後文再介紹資料型別。

除了使用動態型別,我們也可以在程式中標註型別的資訊。見下例:

// `var` is an integer
int var = 100

assert var == 100
assert var.class == java.lang.Integer

這時候,變數就有特定的型別,若更動型別會造成程式的錯誤,見下例:

// `var` is an integer
int var = 100

assert var == 100
assert var instanceof java.lang.Integer

// Error!.
var = "Michelle"

這是因為變數 var 已經綁定特定的型別。在 Groovy,型別標註是選擇性的 (optional),程式設計者可視需求自行決定是否要加入型別。通常,如果想要在程式中限定變數的類型時,就會加上,反之則不加。

分享本文
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Yahoo
追蹤本站
Facebook Facebook Twitter