Lua中如何有效解决特定解包错误问题?
- 内容介绍
- 文章标签
- 相关推荐
本文共计383个文字,预计阅读时间需要2分钟。
我正在创建一个Array类,为了增加更多用法。我有一个metamethod,允许我组合两个表,例如:数组(5)和数组(6,10)应该返回你{5,6,10}。我知道我可以使用两个循环来实现这一点,但我正努力使我的代码更简洁。
我正在创建一个Array类,为表添加更多用法.我有一个metamethod,允许我组合两个表,例如:数组(5)..数组(6,10)应该给你{5,6,10}
我知道我可以使用两个循环来做到这一点,但我正在努力使我的代码尽可能干净和高效.解压缩我遇到了一个问题.我正在尝试连接两个表,但它不包括所有值.这是我的代码和输出:
local Array = {} Array.__index = Array function Array.__concat(self, other) return Array.new(unpack(self), unpack(other)) end function Array:concat(pattern) return table.concat(self, pattern) end function Array.new(...) return setmetatable({...}, Array) end setmetatable(Array, {__call = function(_, ...) return Array.new(...) end}) local x = Array(5, 12, 13) .. Array(6, 9) --concatenate two arrays print(x:concat(", "))
输出:5,6,9(我希望它是“5,12,13,6,9”)
这是标准的Lua行为:在用逗号分隔的函数调用的枚举中,只有最后一个可以返回多个结果.例如:> function f() return 1, 2, 3 end > print(f(), f()) 1 1 2 3
如果我是你,我会做一件简单的事情并使用for循环.
本文共计383个文字,预计阅读时间需要2分钟。
我正在创建一个Array类,为了增加更多用法。我有一个metamethod,允许我组合两个表,例如:数组(5)和数组(6,10)应该返回你{5,6,10}。我知道我可以使用两个循环来实现这一点,但我正努力使我的代码更简洁。
我正在创建一个Array类,为表添加更多用法.我有一个metamethod,允许我组合两个表,例如:数组(5)..数组(6,10)应该给你{5,6,10}
我知道我可以使用两个循环来做到这一点,但我正在努力使我的代码尽可能干净和高效.解压缩我遇到了一个问题.我正在尝试连接两个表,但它不包括所有值.这是我的代码和输出:
local Array = {} Array.__index = Array function Array.__concat(self, other) return Array.new(unpack(self), unpack(other)) end function Array:concat(pattern) return table.concat(self, pattern) end function Array.new(...) return setmetatable({...}, Array) end setmetatable(Array, {__call = function(_, ...) return Array.new(...) end}) local x = Array(5, 12, 13) .. Array(6, 9) --concatenate two arrays print(x:concat(", "))
输出:5,6,9(我希望它是“5,12,13,6,9”)
这是标准的Lua行为:在用逗号分隔的函数调用的枚举中,只有最后一个可以返回多个结果.例如:> function f() return 1, 2, 3 end > print(f(), f()) 1 1 2 3
如果我是你,我会做一件简单的事情并使用for循环.

