- Lua 教程
- Lua - 首頁
- Lua 基礎
- Lua - 概述
- Lua - 環境
- Lua - 基本語法
- Lua - 註釋
- Lua - 列印 Hello World
- Lua - 變數
- Lua - 資料型別
- Lua - 運算子
- Lua - 迴圈
- Lua - 決策
- Lua - 函式
- Lua - 日期和時間
- Lua 陣列
- Lua - 陣列
- Lua - 多維陣列
- Lua - 陣列長度
- Lua - 遍歷陣列
- Lua 迭代器
- Lua - 迭代器
- Lua 列表
- Lua - 在列表中搜索
- Lua 模組
- Lua - 模組
- Lua - 名稱空間
- Lua 元表
- Lua - 元表
- Lua 協程
- Lua - 協程
- Lua 檔案處理
- Lua - 檔案 I/O
- Lua 庫
- Lua - 標準庫
- Lua - 數學庫
- Lua - 作業系統功能
- Lua 有用資源
- Lua - 快速指南
- Lua - 有用資源
- Lua - 討論
Lua - 函式
函式是一組語句,它們共同執行一項任務。您可以將程式碼分成單獨的函式。如何將程式碼劃分為不同的函式取決於您,但邏輯上劃分通常是唯一的,因此每個函式都執行特定的任務。
Lua 語言提供了許多內建方法,程式可以呼叫這些方法。例如,方法 print() 用於在控制檯列印作為輸入傳遞的引數。
函式以各種名稱而聞名,例如方法、子例程或過程等。
定義函式
Lua 程式語言中方法定義的一般形式如下:
optional_function_scope function function_name( argument1, argument2, argument3........, argumentn) function_body return result_params_comma_separated end
Lua 程式語言中的方法定義由方法頭和方法體組成。以下是方法的所有部分:
可選函式作用域 - 您可以使用關鍵字local來限制函式的作用域或忽略作用域部分,這將使其成為全域性函式。
函式名稱 - 這是函式的實際名稱。函式名稱和引數列表共同構成函式簽名。
引數 - 引數就像一個佔位符。當呼叫函式時,您將值傳遞給引數。此值稱為實際引數或引數。引數列表指的是方法的引數型別、順序和數量。引數是可選的;也就是說,方法可能不包含任何引數。
函式體 - 函式體包含定義函式功能的一組語句。
返回值 - 在 Lua 中,可以透過在 return 關鍵字後跟逗號分隔的返回值來返回多個值。
示例
以下是名為 max() 的函式的原始碼。此函式接收兩個引數 num1 和 num2,並返回兩者之間的最大值:
--[[ function returning the max between two numbers --]]
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
函式引數
如果函式要使用引數,則必須宣告接受引數值的變數。這些變數稱為函式的形式引數。
形式引數在函式內部的行為與其他區域性變數相同,並在進入函式時建立,並在退出時銷燬。
呼叫函式
在建立 Lua 函式時,您會給出函式必須執行的操作的定義。要使用方法,您必須呼叫該函式以執行定義的任務。
當程式呼叫函式時,程式控制權將轉移到被呼叫的函式。被呼叫的函式執行定義的任務,當執行其 return 語句或到達其函式的末尾時,它將程式控制權返回到主程式。
要呼叫方法,您只需將所需的引數與方法名稱一起傳遞,如果方法返回值,則可以儲存返回值。例如:
main.lua
function max(num1, num2)
if (num1 > num2) then
result = num1;
else
result = num2;
end
return result;
end
-- calling a function
print("The maximum of the two numbers is ",max(10,4))
print("The maximum of the two numbers is ",max(5,6))
輸出
當我們執行以上程式碼時,我們將得到以下輸出。
The maximum of the two numbers is 10 The maximum of the two numbers is 6
賦值和傳遞函式
在 Lua 中,我們可以將函式賦值給變數,也可以將它們作為另一個函式的引數傳遞。以下是在 Lua 中賦值和傳遞函式作為引數的簡單示例。
main.lua
myprint = function(param)
print("This is my print function - ##",param,"##")
end
function add(num1,num2,functionPrint)
result = num1 + num2
functionPrint(result)
end
myprint(10)
add(2,5,myprint)
輸出
當我們執行以上程式碼時,我們將得到以下輸出。
This is my print function - ## 10 ## This is my print function - ## 7 ##
具有可變引數的函式
在 Lua 中,可以使用 '...' 作為引數來建立具有可變引數的函式。我們可以透過檢視一個示例來了解這一點,在該示例中,函式將返回平均值,並且可以採用可變引數。
main.lua
function average(...)
result = 0
local arg = {...}
for i,v in ipairs(arg) do
result = result + v
end
return result/#arg
end
print("The average is",average(10,5,3,4,5,6))
輸出
當我們執行以上程式碼時,我們將得到以下輸出。
The average is 5.5