Lua - 變量:初學者的指南

Hello, 程式設計新手!今天,我們將深入探索Lua 變量的迷人世界。別擔心如果你從未編過程式 - 我們將從最基本的開始,逐步學習。在這個教學的結尾,你將成為Lua 變量的高手!

Lua - Variables

變量是什麼?

在我們深入Lua的細節之前,讓我們先了解變量是什麼。可以把變量想像成是存放信息的容器。就像你可能會用一個盒子來存放你喜歡的玩具一樣,程式設計師使用變量來存儲數據。

Lua中的變量定義

在Lua中,定義一個變量就像給它一個名字並賦予它一個值一樣簡單。讓我們看一些例子:

name = "Alice"
age = 25
is_student = true

在這些行中,我們創建了三個變量:

  1. name 存放文字 "Alice"
  2. age 存放數字 25
  3. is_student 存放真/假值(稱為布爾值)

Lua足夠聰明,能夠自己在你不必明確指定的情况下判斷你正在存儲什麼類型的數據。這個特性稱為“動態類型”,這是Lua對初學者友好的原因之一!

變量命名

在Lua中命名變量時,請記住以下規則:

  • 名字可以包含字母、數字和下劃線
  • 它們不能以數字開頭
  • Lua是區分大小寫的(所以nameName是不同的變量)

好的變量名就像好的綽號一樣 - 它們應該是描述性的且容易記憶。例如:

favorite_color = "blue"
total_score = 95
is_game_over = false

Lua中的變量聲明

與某些其他編程語言不同,Lua不需要你在使用變量之前聲明它們。你可以通過賦值來直接開始使用一個變量。

-- 這在Lua中是完全有效的
x = 10
print(x)  -- 這將輸出:10

然而,通常來說,在腚本或函數開始時聲明你的變量是一個好習慣。這會使你的代碼更易於閱讀並幫助防止錯誤。

局部變量

在Lua中,你可以使用local關鍵字創建局部變量:

local secret_number = 42

局部變量只在聲明的代碼塊內可訪問。它們就像你的秘密藏匿處一樣 - 只有你(或者說,代碼的特定部分)可以訪問它們。

全局變量

如果你不使用local關鍵字,你創建的是全局變量:

global_message = "Hello, World!"

全局變量可以在程序的任何地方訪問。它們就像廣播在高音量上的公告一樣 - 每個人都能聽到。

Lua中的L值和R值

現在,讓我們來談論L值和R值。不要讓這些術語嚇到你 - 它們比你想像的要簡單!

L值

L值(左值)是可以出現在賦值左側的東西。在Lua中,變量是L值:

x = 5  -- 'x' 是一個L值

R值

R值(右值)是可以出現在賦值右側的東西。這可以是文字值、變量或表達式:

y = 10        -- '10' 是一個R值
z = y         -- 'y' 在這裡是一個R值
w = y + 5     -- 'y + 5' 是一個R值表達式

理解L值和R值幫助你掌握Lua中的賦值是如何工作的。

Lua變量方法

Lua提供了多種內置函數來操作變量。以下是常用的一些:

方法 描述 示例
type() 返回變量的類型 print(type(x))
tostring() 將值轉換為字符串 str = tostring(42)
tonumber() 將值轉換為數字 num = tonumber("42")
pairs() 用於遍歷表的元素 for k,v in pairs(t) do ... end
ipairs() 用於遍歷表的數組部分 for i,v in ipairs(t) do ... end

結合所有知識

讓我們用一個有趣的例子來總結我們學到的知識:

-- 聲明一些局部變量
local name = "Luna"
local age = 8
local favorite_toy = "Magic Wand"

-- 創建一個全局變量
wizard_power = 9000

-- 打印我們巫師的數據
print("Meet " .. name .. ", the " .. age .. "-year-old wizard!")
print(name .. "'s favorite toy is a " .. favorite_toy .. ".")
print("Wizard power level: " .. wizard_power)

-- 檢查我們變量的類型
print("The variable 'name' is a " .. type(name))
print("The variable 'age' is a " .. type(age))
print("The variable 'wizard_power' is a " .. type(wizard_power))

-- 嘗試使用未聲明的變量
print(favorite_spell)  -- 這將打印 'nil'

當你運行這段代碼時,你將看到Luna的巫師數據、我們變量的類型,以及未聲明變量的nil值。

記住,在Lua中,使用未聲明的變量不會引起錯誤 - 它只是返回nil。這可以是福也可以是禍,所以始終要留心你的變量名稱!

這就是Lua變量的第一課 - 你剛剛完成了!記住,熟能生巧。嘗試創建你自己的變量,混合匹配不同的類型,並看看會發生什麼。未來的Lua巫師,快樂編程!

Credits: Image by storyset