如果你有基本的數學基礎,你應該聽說過函數。 數學和程式設計中的函數是相似的概念,但在執行和用途上有所不同。
在數學中,函數是一組輸入(我們稱之為 domain)和一組可能的輸出(稱為 range)之間的關係,其中每個輸入都與一個輸出相關。
但是,在程式設計中:
函數是旨在執行特定任務的代碼塊。
它可以接受輸入(我們稱之為參數)並返回一個值。
在 Lua 中,您可以使用 function 將代碼組織成可重用的塊,使其更加模組化且更易於理解。 在本教程中,我將介紹在 Lua 中創建和使用函數的基礎知識,請記住完成範例以指導您完成整個過程。
如何在 Lua 中建立函數?
在 Lua 中,您可以使用 function
關鍵字後跟函數名稱和一組括號來定義函數。
如前所述,在括弧內,您可以指定參數。
設置參數后,函數將接受它。
然後在函數體中,它包含調用函數時要執行的代碼。
讓我們看看基本語法:
基本功能定義
function functionName(parameters)
-- Function body
end
讓我們從一個簡單的函數開始,您可以列印問候消息:
function greet()
print("Hello, World!")
end
-- Call the function
greet() -- Output: Hello, World!
如你所見,名為 greet() 的函數已定義。 在 Lua 程式中調用該函數後,它會列印出 「Hello, World」。。 創建函數的好處之一是您可以多次 「CALL」 函數。
帶參數的函數
如前所述,函數可以採用參數。 這意味著作為變數的傳入值可以保存調用函數時傳遞給函數的值。 讓我們看看下面的例子是如何運作的:
帶參數的 Lua 函數
function greet(name)
print("Hello, " .. name .. "!")
end
-- Call the function with different arguments
greet("Alice") -- Output: Hello, Alice!
greet("Bob") -- Output: Hello, Bob!
在上面的例子中,每次你在函數內部傳遞一個新值時,例如Alice、Bob,函數都會列印出名稱。 使用 function 傳遞參數非常有用。 您可以設計一個更複雜的函數來存檔更多動態任務。
帶返回值的 Lua 函數
在某些情況下,您可能希望通過調用函數來返回值。 例如,假設您創建了一個函數來計算兩個數位的和。 通過使用 return 關鍵字,該函數將返回一個值。 這意味著你可以將數據從函數傳回給調用方。
Lua 中具有返回值的函數範例
function add(a, b)
return a + b
end
-- Call the function and store the result
local sum = add(5, 3)
print(sum) -- Output: 8
具有多個返回值的 Lua 函數
Lua 函數還可以返回多個值。 這在需要從函數返回多個結果的各種情況下非常有用。
具有多個返回值的函數範例
function divide(a, b)
local quotient = a / b
local remainder = a % b
return quotient, remainder
end
-- Call the function and capture multiple return values
local q, r = divide(10, 3)
print("Quotient: " .. q) -- Output: Quotient: 3.3333333333333
print("Remainder: " .. r) -- Output: Remainder: 1
範圍:本地函數
默認情況下,函數在 Lua 中是全域的,這意味著可以從代碼中的任何位置訪問它們。 但是,您也可以定義只能在特定代碼塊中訪問的本地函數。 我們將使用local關鍵字來定義範圍。
Lua 中的本地函數範例
local function multiply(a, b)
return a * b
end
-- Call the local function
local product = multiply(4, 5)
print(product) -- Output: 20
Lua 高階函數
在 Lua 中,函數是一等值,這意味著你可以將它們存儲在變數中,將它們作為參數傳遞給其他函數,並從其他函數返回它們。
高階函數示例
function applyOperation(a, b, operation)
return operation(a, b)
end
-- Define some basic operations
function add(a, b)
return a + b
end
function subtract(a, b)
return a - b
end
-- Use applyOperation with different operations
local sum = applyOperation(10, 5, add)
local difference = applyOperation(10, 5, subtract)
print("Sum: " .. sum) -- Output: Sum: 15
print("Difference: " .. difference) -- Output: Difference: 5
結論
請記住,函數在任何程式設計中都是一個強大的概念。 您可以編寫模組化、可重用的代碼。 您可以通過使用參數和返回值定義函數來嘗試更多嘗試,然後您應該在遊戲中擁有靈活高效的腳本。 請注意,管理範圍很重要。 當您需要將本地函數的範圍限制為特定的代碼塊時,通過定義本地函數。