Lua 多个结果
示例
Lua中的函数可以返回多个结果。
例如:
function triple(x)
return x, x, x
end调用函数时,要保存这些值,必须使用以下语法:
local a, b, c = triple(5)
这将导致a=b=c=5这种情况。也可以通过在变量_列表中的所需位置使用抛弃型变量来忽略返回的值:
local a, _, c = triple(5)
在这种情况下,第二个返回值将被忽略。通过不将返回值分配给任何变量,也可以忽略返回值:
local a = triple(5)
变量a将被分配第一个返回值,其余两个将被丢弃。
当函数返回可变数量的结果时,可以通过在其中执行函数来将所有结果存储在表中:
local results = {triple(5)}这样,可以遍历results表以查看该函数返回了什么。
注意
在某些情况下,这可能是一个惊喜,例如:
local t = {}
table.insert(t, string.gsub(" hi", "^%s*(.*)$", "%1")) --> bad argument #2 to 'insert' (number expected, got string)发生这种情况是因为string.gsub返回了2个值:给定的字符串(替换了出现的模式)以及发生的匹配总数。
要解决此问题,请使用中间变量或将()调用置于周围,如下所示:
table.insert(t, (string.gsub(" hi", "^%s*(.*)$", "%1"))) --> works. t = {"hi"}这仅捕获呼叫的第一个结果,而忽略其余的结果。
热门推荐
10 八一幼儿祝福语大全简短
11 公司乔迁食堂祝福语简短
12 婚礼结束聚餐祝福语简短
13 儿媳买车妈妈祝福语简短
14 毕业送礼老师祝福语简短
15 同事辞职正常祝福语简短
16 恭贺新婚文案祝福语简短
17 金店立秋祝福语简短英文
18 婆婆高寿祝福语大全简短