operator - ruby ||=
Ruby: qué significa el asterisco en "p*1..10" (1)
Es el operador de splat . A menudo verá que solía dividir una matriz en parámetros para una función.
def my_function(param1, param2, param3)
param1 + param2 + param3
end
my_values = [2, 3, 5]
my_function(*my_values) # returns 10
Más comúnmente se usa para aceptar una cantidad arbitraria de argumentos
def my_other_function(to_add, *other_args)
other_args.map { |arg| arg + to_add }
end
my_other_function(1, 6, 7, 8) # returns [7, 8, 9]
También funciona para asignaciones múltiples (aunque ambas declaraciones funcionarán sin el símbolo splat):
first, second, third = *my_values
*my_new_array = 7, 11, 13
Para su ejemplo, estos dos serían equivalentes:
p *1..10
p 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
la línea
p *1..10
hace exactamente lo mismo que
(1..10).each { |x| puts x }
que le da el siguiente resultado:
$ ruby -e "p *1..10"
1
2
3
4
5
6
7
8
9
10
es un gran atajo cuando se trabaja con un compañero de texto, por ejemplo, pero ¿qué hace el asterisco? ¿Cómo funciona? no pude encontrar nada en la red ...