Ruby Language Array coercing nell'elenco dei parametri


Esempio

Supponi di avere un array:

pair = ['Jack','Jill']

E un metodo che prende due argomenti:

def print_pair (a, b)
  puts "#{a} and #{b} are a good couple!"
end

Potresti pensare di poter passare semplicemente l'array:

print_pair(pair) # wrong number of arguments (1 for 2) (ArgumentError)

Dato che l'array è solo un argomento, non due, quindi Ruby lancia un'eccezione. Si potrebbe tirare fuori ogni elemento singolarmente:

print_pair(pair[0], pair[1])

Oppure puoi usare l'operatore splat per risparmiarti qualche sforzo:

print_pair(*pair)