Frage Ruby konvertiert Array in Funktionsargumente


Angenommen, ich habe ein Array. Ich möchte das Array zu einer Funktion übergeben. Die Funktion erwartet jedoch zwei Argumente. Gibt es eine Möglichkeit, das Array im Handumdrehen in 2 Argumente umzuwandeln? Beispielsweise:

a = [0,1,2,3,4]
b = [2,3]
a.slice(b)

Würde einen Fehler in Ruby ergeben. Ich muss eingeben a.slice(b[0],b[1]) Ich suche nach etwas eleganterem, als in a.slice(foo.bar(b)) Vielen Dank.


76
2018-02-19 13:40


Ursprung


Antworten:


Sie können ein Array in eine Argumentliste mit dem * (oder "splat") Betreiber:

a = [0, 1, 2, 3, 4] # => [0, 1, 2, 3, 4]
b = [2, 3] # => [2, 3]
a.slice(*b) # => [2, 3, 4]

Referenz:


67
2018-02-19 13:46



Benutze das

a.slice(*b)

Es heißt der Splat-Operator


89
2018-02-19 13:42