Keyword Arguments

Arguments amb noms

A partir de Ruby 2.1

1. Nombre y un parámetro inicial

def hola(nombre:"",edad:0)
  if edad > 30
    puts "Hola señor #{nombre}"
  elsif edad < 30
    puts "Hola joven #{nombre}"
  end

end

hola(nombre:"Uriel", edad: 23)

Output

Hola joven Uriel

2. En cas de no assignar valora a l’edat

def hola(nombre:"",edad:0)
  if edad > 30
    puts "Hola señor #{nombre}"
  elsif edad < 30
    puts "Hola joven #{nombre}"
  end

end

hola(nombre:"Uriel")

Output

Hola joven Uriel

Ix el mateix perquè a la línia 1 li assignem el valor edad:0.

D’aquesta manera els dos paràmetres són opcionals perquè n’hi ha valors per defecte.

3. Ordre

L’ordre dels paràmetres és arbitrari, així es poden cridar al revés.

def hola(nombre:"",edad:0)
  if edad > 30
    puts "Hola señor #{nombre}"
  elsif edad < 30
    puts "Hola joven #{nombre}"
  end

end

hola(edad:23 nombre:"Uriel")

Output

Hola joven Uriel

4. Afegint splash operator

D’aquesta manera podem posar paràmetres infinit.

def hola(nombre:"",edad:0,**options)
  if edad > 30
    puts "Hola señor #{nombre}"
  elsif edad < 30
    puts "Hola joven #{nombre}"
  end

  puts options[:animal_favorito]

end

hola(nombre:"Uriel", edad: 23,color_favorito:"Azul",animal_favorito:"Cocodrilo")

Output

Hola joven Uriel
{:color_favorito=>"Azul", :animal_favorito=>"Cocodrilo"}

5. Fer un argument obligatori

Per fer-ho col·loquem dos punts darrere de l’argument.