Скажем, я делаю unpack(4)
или unpack("hello world")
. Есть ли какое-нибудь неожиданное поведение?Есть ли причина не распаковывать простые значения в Lua
Причина что-то вроде этого:
function a(bool)
if bool then
return {1, 2}, "foo"
else
return 1, "foo"
end
end
function b(x, z)
end
function b(x, y, z)
end
i, j = a(???)
b(unpack(i), j) -- is this ok?
это проложило вам путь вы можете просто запустить код и посмотреть, что происходит, вместо того, чтобы спрашивать, что происходит? гораздо лучший способ узнать – Piglet
'b (unpack (i), j)' - плохой пример: результат 'unpack (i)' будет скорректирован до одного значения. –
Не самый простой способ просто вернуть таблицу во всех случаях? Итак, если есть одно значение, которое нужно вернуть, сделайте так: return {1}, "foo" ' – tonypdmtr