定義一個函式
function add(a, b)
return a + b
end
-- creates a function called add, which returns the sum of it's two arguments
我們來看看語法。首先,我們看到一個 function
關鍵字。嗯,那很有描述性。接下來我們看到 add
識別符號; 名字。然後我們看到 (a, b)
這些論點可以是任何東西,它們都是本地的。只有在函式體內部才能訪問它們。讓我們跳到最後,我們看到……好吧,end
! 而介於兩者之間的是功能體; 呼叫它時執行的程式碼。return
關鍵字是使函式實際提供一些有用輸出的原因。沒有它,該函式不返回任何內容,這相當於返回 nil。這當然可以用於與 IO 互動的事情,例如:
function printHello(name)
print("Hello, " .. name .. "!");
end
在該函式中,我們沒有使用 return 語句。
函式也可以有條件地返回值,這意味著函式可以選擇不返回任何值(nil)或值。這在以下示例中進行了演示。
function add(a, b)
if (a + b <= 100) then
return a + b -- Returns a value
else
print("This function doesn't return values over 100!") -- Returns nil
end
end
函式也可以返回由逗號分隔的多個值,如下所示:
function doOperations(a, b)
return a+b, a-b, a*b
end
added, subbed, multiplied = doOperations(4,2)
函式也可以宣告為本地
do
local function add(a, b) return a+b end
print(add(1,2)) --> prints 3
end
print(add(2, 2)) --> exits with error, because 'add' is not defined here
它們也可以儲存在表格中:
tab = {function(a,b) return a+b end}
(tab[1])(1, 2) --> returns 3