¿Cómo creo una función Ruby que no tenga un número explícito de parámetros?Función Ruby con número ilimitado de parámetros
¿Se necesita más aclaración?
¿Cómo creo una función Ruby que no tenga un número explícito de parámetros?Función Ruby con número ilimitado de parámetros
¿Se necesita más aclaración?
Utilice *rest
. aquí hay un lindo y pequeño tutorial.
utilizar el operador splat *
def foo(a,b,c,*others)
# this function has at least three arguments,
# but might have more
puts a
puts b
puts c
puts others.join(',')
end
foo(1,2,3,4,5,6,7,8,9)
# prints:
# 1
# 2
# 3
# 4,5,6,7,8,9
Aquí hay otro artículo sobre el tema:
www.misuse.org/science/2008/01/30/passing-multiple-arguments-in-ruby-is-your-friend
da algunos ejemplos agradables enrollado y desenrollado sus parámetros utilizando "*"
(Si pudiera agregar un comentario a la respuesta aceptada, lo haría, pero no tengo suficientes puntos).
Advertencia: Tenga cuidado al hacerlo para los métodos que procesan datos generales. Es una gran pieza de azúcar de sintaxis, pero son límites a la cantidad de argumentos que puede pasar a un método antes de obtener un SystemStackError. Llegué a ese límite usando redis.mapped_mget *keys
. Además, el límite cambiará dependiendo de dónde use el operador splat. Por ejemplo, al ejecutar localmente la palanca, puedo proyectar matrices de más de 130,000 elementos a un método. Aunque se ejecuta dentro de un actor de celuloide, ese límite puede ser inferior a 16,000 elementos.