我已经在线搜索,找不到对此的解释。
以下是什么意思?
Local a,b = foo()
为什么有两个变量?
是不是
Local a= foo()
和
Local b= foo()
也是吗?还是?
有人可以提供用法示例吗?
答案 0 :(得分:5)
在Lua中,一个函数可以返回多个值。例如,此函数返回两个值:
function returnThreeAndFive()
return 3, 5
end
您可以使用所描述的语法将函数调用的结果加载到变量中。 (但是,如果希望变量是局部变量,则应将小写的“ l”表示“ local”,而不是大写的“ L”。)
local a, b = returnThreeAndFive()
print(a, b) -- Prints "3 5"
如果使用的变量多于函数返回的值,则Lua用nil
填充变量。
local a, b, c = returnThreeAndFive()
print(a, b, c) -- Prints "3 5 nil"
相反,如果该函数返回的值比使用变量的值多,则仅捕获放入变量中的值。
local a = returnThreeAndFive()
print(a) -- Prints "3"
答案 1 :(得分:3)
这意味着foo返回两个值,它们分别进入a和b!因此,foo被调用一次,但是两个结果被存储到两个变量中。
请参阅https://www.tutorialspoint.com/python/string_startswith.htm,以获取更多参考。
语法有点奇怪,其他语言也会要求使用花括号,例如
( a, b ) = foo()
科特林也允许这样做。他们称之为破坏。