warframe tutorial ropa nombre luna for cantante lua

tutorial - Lua desempaquetar() desordenar argumentos



lua tutorial (1)

Este comportamiento no es específico para unpack . El Manual de referencia de Lua dice:

"Tanto las llamadas a funciones como las expresiones vararg pueden dar como resultado valores múltiples. Si una llamada a función se usa como una declaración (ver §3.3.6), entonces su lista de resultados se ajusta a cero elementos, descartando así todos los valores devueltos. utilizado como el último (o el único) elemento de una lista de expresiones, no se realiza ningún ajuste (a menos que la expresión esté entre paréntesis). En todos los demás contextos, Lua ajusta la lista de resultados a un elemento descartando todos los valores, excepto el primero o agregar un solo nil si no hay valores " .

(mi énfasis)

Tengo esta función de prueba que simplemente imprime valores pasados ​​a ella

function test1(...) for k, v in ipairs(arg) do print(v) end end function test2(...) for k, v in pairs(arg) do print(v) end end -- GOOD behavior test1(1, 2, 3, 4) -- produces 1 2 3 4 test2(1, 2, 3, 4) -- produces 1 2 3 4 -- BAD behavior test1( unpack({1,2}), 3, 4) -- produces 1 3 4 test2( unpack({1,2}), 3, 4) -- produces 1 3 4 3

¿Puede alguien explicarme este comportamiento?