在完成了基本的 Lua 輸入和輸出 章節之後,我們現在開始開始關於 變數 和 數據類型的新章節。 這些是任何 Lua 程式的構建塊。 如果您是編碼員的新人,變數允許您存儲、操作和管理數據。
本章我們將要討論的幾個重要方面:
- 什麼是變數以及如何聲明它們?
- Lua 可以使用不同類型的數據?
- Lua 如何動態處理變數和值?
我希望最後,您會熟悉在 Lua 編輯器中使用變數和數據。 讓我們開始吧!
什麼是 Lua 變數?
變數就像一個保存資訊的容器。
您可以將其視為一個帶標籤的框,您可以在其中存儲不同類型的數據,例如數位、文本(字串),甚至更複雜的結構,例如表格。
變數的定義
您可以使用 Lua Online Editor 嘗試以下示例:
如何在 Lua 中聲明變數?
在 Lua 中,創建一個新變數非常簡單,你只需要說出它的名稱,通常你會通過 “=” 運算子為變數分配一個值。 您可以根據需要定義任意數量的變數。 但您需要關心變數的範圍和類型。 讓我們看一個簡單的例子:
local name = "KaClass" -- A string variable
local age = 25 -- A number variable
local amISmart = true -- A boolean variable
你可以看到,在這個例子中,我們使用local關鍵字來定義變數。 第一個 「name」 是一個 STRING 變數,用於存儲文字 “KaClass”。 然後下一個 「age」 是一個值為 「25」 的數位。 最後,“amISmart” 是一個布爾值。 布爾變數的唯一可能值為 true 或 false。
你可能會想,我們需要定義 Lua 變數的數據類型嗎? 答案是否定的。 Lua 腳本是一種動態類型的語言。 因此,變數的類型是根據分配的值自動確定的。
什麼是 Lua 中的局部變數和全域變數?
在 Lua 中,您可以創建 局部 變數和 全域 變數。 局部變數 是使用 local
關鍵字定義的,就像我在前面的例子中展示的那樣。
它們只能在聲明它們的塊或函數中訪問。
就像這些變數是 「本地公民」 一樣,它們只能在國內訪問。
那麼 Global variables 呢?
我們不使用關鍵字, local
可以從程式中的任何位置訪問。
試想一下,您擁有全球簽證,可以環遊世界!
讓我們看一下下面的例子:
局部變數與全域變數
local localVar = "I am local citizen"
globalVar = "I got a global visa!"
print(localVar) -- Output: I am local citizen
print(globalVar) -- Output: I got a global visa!
那麼為什麼我們不將所有變數都設置為全域變數呢?
因為使用 local
scope 有助於避免程式設計過程中的衝突。
它可以通過限制變數的範圍來使您的代碼更易於管理。
Lua 中的數據類型
如前所述,Lua 是一種 動態類型語言 ,您無需顯式定義變數的數據類型。 那麼它是如何工作的呢? Lua 的引擎會根據你給它分配的值來計算出來。 但是,瞭解 Lua 支援的基本數據類型仍然很重要,這樣您就可以更好地控制數據流。
類型: 無
這是一種特殊類型,表示缺少值。
通常在程式設計中,您需要特別注意變數是否為 NULL。
通常,未分配任何值的變數最初會自動保留該值 nil
。
我們現在可以嘗試一下。
列印 Nil 示例
local randomVar
print(randomVar)
在這種情況下, randomVar
已聲明但未初始化。
所以它持有 nil
的值 。
類型:布爾值
在某些情況下,我們需要為變數分配 TRUE 或 FALSE。
我們使用布爾值來處理。
Lua 使用 true
和 false
作為布爾值。
它們通常用於條件檢查。
列印布爾值示例
local isGameOver = false
print(isGameOver)
類型: Number
創建 number 變數確實很常見。 Lua 的所有數位都使用單一類型,可以表示整數和浮點數(decimals)。
在 Lua 中列印數位範例
local count = 10 -- An integer
local price = 5.99 -- A floating-point number
print(count) -- Output: 10
print(price) -- Output: 5.99
Lua 中的數位可以有效地處理,您可以使用它們執行所有基本的算術運算,例如加法、減法、乘法和除法。
類型: 字串
字串是您經常使用的另一種常見數據類型。
它實際上是用來在 Lua 中儲存文字的。
對於多行字串,定義字串的語法可以用單引號 ('
)、雙引號 ()"
甚至雙方括號 ()[[ ]]
括起來。
在 Lua 中列印字串
local greeting = "Hello, World!"
local longText = [[
This is a long string
that spans multiple lines.
]]
print(greeting) -- Output: Hello, World!
print(longText) -- Output: The entire multiline text
我們將在後面的章節中討論 Lua 提供了多少有用的功能,以便你可以輕鬆地操作它們。 例如,編碼中常用 concatenation、length checking、substring extracting。 例如:
如何在 Lua 中進行字串連接?
您可以使用串聯運算符聯接兩個或多個字串 ..
local firstName = "John"
local lastName = "Wick"
local fullName = firstName .. " " .. lastName .. "is Cool!"
print(fullName) -- Output: John Wick is Cool!
類型: 桌子
表格是 Lua 中最強大、最靈活的數據類型之一。 通過使用 table,您可以表示陣列、字典(鍵值對)和物件。 我們將在另一章中詳細討論帶有示例的表格,但現在,只需知道表格的用途非常廣泛。
如何在 Lua 中建立表格?
local person = {
name = "Taylor Swift",
age = 35,
job = "Singer"
}
print(person.name) -- Output: Taylor Swift
表格可以存儲各種數據,包括數位、字串、布爾值,甚至其他表格。
Lua 中的動態類型
Lua 是動態類型的,你可以簡單地通過給它分配一個新值來改變變數的類型。 通過這樣做,Lua 的引擎將自動適應您分配的新類型的值。
Lua 中的動態類型是如何工作的?
local myVar = 1000 -- Initially a number
print(myVar) -- Output: 1000
myVar = "I am loving it" -- Now it's a string
print(myVar) -- Output: I am loving it
在上面的示例中, myVar
從一個數字開始,然後變成一個字串。
您可以看到 Lua 不需要您提前指定類型。
如何檢查變數的類型?
在某些情況下,您可能希望檢查變數的類型。
通過使用該 type()
函數,您可以執行此操作,它有助於調試或驗證變數的數據類型。
在 Lua 範例中檢查類型
local number = 55
local text = "Beauty of Art"
local isTrue = false
print(type(number)) -- Output: number
print(type(text)) -- Output: string
print(type(isTrue)) -- Output: boolean
該 type()
函數返回一個描述變數類型的字串。
Lua 數據類型總結
以下是我們到目前為止討論的基本數據類型的快速概述:
數據類型 | 描述 |
---|---|
nil | 表示缺少值。 |
boolean | 持有或 true false 。 |
number | 存儲整數和浮點數。 |
string | 儲存字元或文字序列。 |
table | Lua 靈活的數據結構。 |
function | 可以將函數分配給變數。 |
結論
我希望你在學完本章后對變數和數據類型有深入的瞭解。 通過瞭解如何聲明變數和處理不同類型的數據,您將能夠面對即將到來的不同挑戰。 只要確保你記住 Lua 的 dynamic type 屬性。 嘗試使用您自己的 Lua 編輯器進行更多試驗,以熟悉所有這些編輯器。 在下一章中,我們將開始探索 Lua 運算符。 一會見!