跳轉至內容

Scribunto:入門/變數

來自華夏公益教科書,自由的教科書

在本章中,我們將學習變數。變數是賦予資料片段的名字,這樣我們就可以再次使用這些資料。

基本用法

[編輯 | 編輯原始碼]

以下程式給出了一個關於如何使用變數的簡單示例。(注意:當你將此程式輸入到除錯控制檯中時,你需要在第一行之後按回車鍵,而不是 Shift + 回車鍵。如果你在除錯控制檯中一次輸入多行,你不能使用=字元在行首顯示輸出。)

程式碼:

name = "Susan"
= name

輸出:

Susan

在程式的第一行,我們建立了一個名為name的變數,並賦予它值 "Susan"。在第二行,我們顯示了我們建立的name變數的內容。

你可能已經注意到,在這個程式中,等號=被用於兩種不同的目的。這經常讓 Lua 初學者感到困惑,所以讓我們現在明確它們之間的區別。

  • 在變數名之後,=的意思是 "將右側的值儲存在左側的變數中"。這個過程稱為賦值
  • 在除錯控制檯中新行開始時,=的意思是 "顯示此行語句的結果"。這僅在除錯控制檯中有效,對於多行語句無效。

另外,請注意,在 Lua 中,單個等號=意味著 "等於"。還有另一個運算子用於表示 "等於",我們將在後面學習。

變數名

[編輯 | 編輯原始碼]

在前面的示例中,我們使用 "name" 作為變數名,沒有給出任何進一步的解釋。但是,在你開始建立自己的變數之前,你應該知道,對你可以使用的名稱有一些限制。這些限制如下:

  • 變數名只能使用小寫字母 a 到 z,大寫字母 A 到 Z,數字 0 到 9,以及下劃線字元_
  • 它們不能以數字開頭。
  • 它們不能是為核心 Lua 函式保留的詞。

這裡,"保留字" 是指語言本身用於各種不同程式設計任務的詞。它們如下:

  • and
  • break
  • do
  • else
  • elseif
  • end
  • false
  • for
  • function
  • if
  • in
  • local
  • nil
  • not
  • or
  • repeat
  • return
  • then
  • true
  • until
  • while

只要你遵守上述規則,你就可以使用任何東西作為名稱。但是,當你選擇變數名時,最好是描述性的。描述性的名稱更容易讓檢視你程式的人理解(也更容易讓你在編寫完程式六個月後檢視自己的程式)。例如,如果你要建立一個變數來儲存一個維基連結,名稱 wikilinklinkwll 更容易理解。

另一個需要注意的重要事項是變數區分大小寫。就 Lua 而言,nameNameNAME 是完全不同的變數。

重複使用變數

[編輯 | 編輯原始碼]

一旦你將一個值賦予一個變數,你就可以像你想要的那樣多次使用它。

程式碼:

name = "Susan"
= name
= name
= name

輸出:

Susan
Susan
Susan

你也可以在計算和其他型別的 Lua 表示式中使用變數。你只需要輸入變數名,它將被視為它的值。

程式碼:

num = 3
= num * num

輸出:

9

如果你處理的是長數字或字串,這可以為你節省一些按鍵操作。

程式碼:

num = 4710462919837471
= num * num

輸出:

2.2188460919164e+31

這也是使你的程式碼可重用的關鍵。在我們開始編寫完整的 Lua 模組後,我們將瞭解更多關於這一點。

你也可以像你想要的那樣多次為變數分配新的值。這也被稱為重新賦值

程式碼:

name = "Susan"
= name
name = "Tim"
= name
name = "Jennie"
= name

輸出:

Susan
Tim
Jennie
華夏公益教科書