function - name - ¿Cómo puedo ignorar los primeros resultados de una función en Lua?
meta tags seo (1)
Puede utilizar la función de select
. Devolverá todos los argumentos después del index
, donde el index
es el primer argumento dado para select
.
Ejemplos:
c = select(3, unpack({''one'', ''two'', ''three''}))
b, c = select(2, unpack({''one'', ''two'', ''three''}))
b = select(2, unpack({''one'', ''two'', ''three''})) --discard last return value
Dicho esto, creo que en la mayoría de los casos, escribir _,_,c = f()
es más limpio. select
es útil sobre todo cuando el número de argumento no se conoce de antemano o cuando se encadena una función (p. ej., f(select(2, g()))
)
Las funciones de Lua pueden devolver múltiples resultados:
a, b, c = unpack({''one'', ''two'', ''three''})
Si no estoy interesado en el tercer valor de retorno, puedo elegir ignorarlo al llamar a la función:
a, b = unpack({''one'', ''two'', ''three''})
¿Hay una forma similar de ignorar los primeros X elementos cuando se llama la función?
Podría escribir este código si solo quisiera el tercer valor de retorno, pero me preguntaba si existe un código más limpio:
_, _, c = unpack({''one'', ''two'', ''three''})