Lua有a,b = foo()是什么意思?

K K*_*Kay 2 lua

我在网上搜索过,无法找到解释.

以下是什么意思?

Local a,b = foo()
Run Code Online (Sandbox Code Playgroud)

为什么两个变量?

这是不是意味着

Local a= foo()
Run Code Online (Sandbox Code Playgroud)

Local b= foo()
Run Code Online (Sandbox Code Playgroud)

还有吗?要么?

有人可以提供使用示例吗?

Jac*_*lor 5

在Lua中,函数可以返回多个值.例如,此函数返回两个值:

function returnThreeAndFive()
    return 3, 5
end
Run Code Online (Sandbox Code Playgroud)

您可以使用所描述的语法将函数调用的结果加载到变量中.(但是,如果您希望变量是本地变量,则应使用小写"l"表示"local",而不是大写"L".)

local a, b = returnThreeAndFive()
print(a, b) -- Prints "3    5"
Run Code Online (Sandbox Code Playgroud)

如果你使用的函数多于函数返回值,那么Lua会填充其中的变量nil.

local a, b, c = returnThreeAndFive()
print(a, b, c) -- Prints "3    5    nil"
Run Code Online (Sandbox Code Playgroud)

相反,如果函数返回的值多于使用变量的值,则只捕获放在变量中的值.

local a = returnThreeAndFive()
print(a) -- Prints "3"
Run Code Online (Sandbox Code Playgroud)