有如下代码:
local a,b,c = unpack({1,2,2})
print(a,b,c)
输出1,2,3。
这是毫无疑问的!
但是当unpack 配上条件表达式呢?
local test1 = {"a","b","c"}
local x,y,z = type(test1) == "table" and unpack(test1) or test1
print(x,y,z)
显然的 type(test1) == “table” 为真,那么x,y,z应该是test1的unpack,即a,b,c吧?
但是但是但是,输出结果是 “a”,nil,nil
天呐,被裁了!条件表达式仅返回unpack(test1)的第一个值。
这个,语法如此!
还是老老实实写成这样子:
if type(test1) == "table" then
local x,y,z = = unpack(test1)
else
local x = test1
end