在 Lua 中,函数是一等公民,你可以将它们赋值给变量,将它们作为参数传递给其他函数,也可以从其他函数中返回。以下是 Lua 函数的基本用法:

1. 函数定义:
-- 定义一个简单的函数
function greet(name)
    print("Hello, " .. name .. "!")
end

-- 调用函数
greet("Lua")

2. 匿名函数:
-- 匿名函数赋值给变量
local add = function(a, b)
    return a + b
end

-- 调用匿名函数
local result = add(5, 3)
print(result)  -- 输出:8

3. 多返回值:

Lua 函数可以返回多个值:
function multipleValues()
    return 1, 2, 3
end

local a, b, c = multipleValues()
print(a, b, c)  -- 输出:1   2   3

4. 默认参数:
function withDefault(x, y)
    y = y or 10  -- 设置默认值
    return x + y
end

print(withDefault(5))     -- 输出:15
print(withDefault(5, 7))  -- 输出:12

5. 可变参数:
function variableArguments(...)
    local args = {...}
    for i, v in ipairs(args) do
        print(i, v)
    end
end

variableArguments("a", "b", "c")
-- 输出:
-- 1   a
-- 2   b
-- 3   c

6. 闭包:

Lua 支持闭包,即函数可以访问其外部作用域中的变量:
function outerFunction(x)
    local y = 5
    return function(z)
        return x + y + z
    end
end

local innerFunc = outerFunction(10)
print(innerFunc(3))  -- 输出:18

7. 尾调用优化:

Lua 支持尾调用优化,即在函数的最后一个动作是调用另一个函数时,不会创建新的调用帧。
function tailCallOptimization(x)
    return x * 2
end

print(tailCallOptimization(5))  -- 输出:10

这些是 Lua 函数的基本用法。函数是 Lua 中非常重要的概念,能够使你的代码更模块化、可重用和易于维护。学习如何设计和使用函数将有助于你更好地组织 Lua 代码。


转载请注明出处:http://www.zyzy.cn/article/detail/6491/Lua