Me pregunto si hay alguna manera de descomprimir una lista de argumentos de longitud variable en AS3. Tomemos por ejemplo esta función:Desenrollando var args en AS3
public function varArgsFunc(amount:int, ...args):Array
{
if (amount == 3)
{
return args
}
else
{
return varArgsFunc(++amount, args)
}
}
Si llamo a esto:
var result:Array = varArgsFunc(0, [])
resultado ahora contiene un conjunto anidado de matrices:
[[[[]]]]
El problema aquí es que el parámetro args es tratado como una matriz. Entonces, si lo paso a una función con una lista de argumentos variables, se tratará como un único argumento.
En Scala no es el: _ * operador que le dice al compilador para romper una lista en una lista de parámetros:
var list:Array = ['A', 'B', 'C']
// now imagine we have this class, but I would like to pass each list element
// in as a separate argument
class Tuple {
public function Tuple(...elements)
{
// code
}
}
// if you do this, the list will become be passed as the first argument
new Tuple(list)
// in scala you can use the :_* operator to expand the list
new Tuple(list :_*)
// so the :_* operator essentially does this
new Tuple(list[0], list[1], list[2])
me gustaría saber si existe una técnica/operador en AS3 para ampliar una matriz en una lista de argumentos.
Gracias por la respuesta, pero esto no es lo que estoy buscando para. He reescrito la pregunta en un intento de explicarme más claramente. –
hokay, editado mi respuesta. ¿mejor ahora? ;) – grapefrukt
Gracias pomelo –