Operador Splat
1. Exemple mètode utilizant una llista
def hola_gente(personas)
personas.each {|personas| puts "Hola #{personas}"}
end
hola_gente("Uriel","Coco")
Output
Hola Uriel
Hola Coco
2. Mètode splat
Convertim la llista en strings.
def hola_gente(*personas)
personas.each {|persona| puts "Hola #{persona}"}
end
hola_gente "Uriel" , "Coco"
Output
Hola Uriel
Hola Coco
Funciona si posem qualsevol valor.
def hola_gente(*personas)
personas.each {|persona| puts "Hola #{persona}"}
end
hola_gente 23
Output
23
El operador splat diu “passam qualsevol valor que els interpretaré com una llista”.
Així, doncs, amb aquest mètode se li pot passar qualsevol tipus d’argument, que els rebrà com una llista.
def hola_gente(*personas)
personas.each {|persona| puts "Hola #{persona}"}
end
hola_gente 23, "Uriel", "Coco",":(",":)"
Output
Hola 23
Hola Uriel
Hola Coco
Hola :(
Hola :)
3. Combinant spalt operator
amb altres arguments
def hola_gente(menaje,*personas)
personas.each {|persona| puts "#{mensaje} #{persona}"}
end
hola_gente "Hey hola", "Uriel", "Coco",":(",":)"
Output
Hey hola Uriel
Hey hola Coco
Hey hola :(
Hey hola :)
4. Utilitzant el *
converteix una llista en una llista de paràmetres
Imaginem que tots els nom els tenim dins d’una llista.
Splat operator
els veu com un sol argument, perquè estan en una llista.
Així:
def hola_gente(mensaje,*personas)
personas.each {|persona| puts "#{mensaje} #{persona}"}
end
nombres = ["Uriel", "Coco",":(",":)"]
hola_gente "Hey hola", nombres
Output
Hey hola ["Uriel", "Coco", ":(", ":)"]
Soles ho mana executar una vegada.
5. Convertir una llista a una llista d’arguments
Utilitzem la mateixa sintaxi, l’asterisc, *
, converteix un array
en una llista de paràmetres
.
def hola_gente(mensaje,*personas)
personas.each {|persona| puts "#{mensaje} #{persona}"}
end
nombres = ["Uriel", "Coco",":(",":)"]
hola_gente "Hey hola", *nombres
Output
Hey hola Uriel
Hey hola Coco
Hey hola :(
Hey hola :)