定义一个函数
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