require 'pp'
p *1..10
Esto imprime 1-10. ¿Por qué es esto tan conciso? ¿Y qué más puedes hacer con eso?¿Cuál es la característica en Ruby que permite "p * 1..10" imprimir los números del 1 al 10?
require 'pp'
p *1..10
Esto imprime 1-10. ¿Por qué es esto tan conciso? ¿Y qué más puedes hacer con eso?¿Cuál es la característica en Ruby que permite "p * 1..10" imprimir los números del 1 al 10?
Es el operador "splat". Se puede usar para explotar matrices y rangos y recopilar valores durante la asignación.
Aquí los valores en una asignación se recogen:
a, *b = 1,2,3,4
=> a = 1
b = [2,3,4]
En este ejemplo, los valores de la matriz interior (la [3,4]
uno) se explota y se recogió para la matriz que contiene:
a = [1,2, *[3,4]]
=> a = [1,2,3,4]
Puede definir funciones que recopilan argumentos en una matriz:
def foo(*args)
p args
end
foo(1,2,"three",4)
=> [1,2,"three",4]
Bueno:
require pp
Las importaciones de la funcionalidad de impresión legiblep
es un método de impresión legible con varargs, que bonito-imprime cada argumento*
significa "expandir el argumento en varargs "en lugar de tratarlo como un único argumento¿Eso lo explica adecuadamente? Si no, por favor explique qué bit es confuso.
+1 para ac respuesta oncise y purty mientras se vislumbra la marca 50K ... –
¿Por qué esto se bajó? Mi respuesta no entró en detalles sobre ningún aspecto porque no sabía qué bit era confuso para el OP, pero esto es genial para el operador de splat. –