我有以下unpack()
函数:
function unpack(t, i)
i = i or 1
if t[i] then
return t[i], unpack(t, i + 1)
end
end
我现在在以下测试代码中使用它:
t = {"one", "two", "three"}
print (unpack(t))
print (type(unpack(t)))
print (string.find(unpack(t), "one"))
print (string.find(unpack(t), "two"))
输出:
one two three
string
1 3
nil
让我感到困惑的是最后一行,为什么结果
nil
? 最佳答案
如果一个函数返回多个值,除非将其用作最后一个参数,否则仅采用第一个值。
在您的示例中,string.find(unpack(t), "one")
和string.find(unpack(t), "two")
,"two"
和"three"
被丢弃,它们等效于:
string.find("one", "one") --3
和
string.find("one", "two") --nil