Ruby Language
Operator języka (*)
Szukaj…
Zmuszanie tablic do listy parametrów
Załóżmy, że masz tablicę:
pair = ['Jack','Jill']
I metoda, która przyjmuje dwa argumenty:
def print_pair (a, b)
puts "#{a} and #{b} are a good couple!"
end
Możesz pomyśleć, że możesz po prostu przekazać tablicę:
print_pair(pair) # wrong number of arguments (1 for 2) (ArgumentError)
Ponieważ tablica jest tylko jednym argumentem, a nie dwoma, więc Ruby zgłasza wyjątek. Można wyciągnąć każdy element osobno:
print_pair(pair[0], pair[1])
Lub możesz użyć operatora splat, aby zaoszczędzić trochę wysiłku:
print_pair(*pair)
Zmienna liczba argumentów
Operator splat usuwa poszczególne elementy tablicy i tworzy z nich listę. Jest to najczęściej używane do stworzenia metody, która akceptuje zmienną liczbę argumentów:
# First parameter is the subject and the following parameters are their spouses
def print_spouses(person, *spouses)
spouses.each do |spouse|
puts "#{person} married #{spouse}."
end
end
print_spouses('Elizabeth', 'Conrad', 'Michael', 'Mike', 'Eddie', 'Richard', 'John', 'Larry')
Zauważ, że tablica liczy się tylko jako jeden element na liście, więc będziesz potrzebować operatora splat również po stronie wywołującej, jeśli masz tablicę, którą chcesz przekazać:
bonaparte = ['Napoleon','Joséphine','Marie Louise']
print_spouses(*bonaparte)
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow