ruby konwertuje tablicę na argumenty funkcji


98

Powiedz, że mam tablicę. Chcę przekazać tablicę do funkcji. Funkcja oczekuje jednak dwóch argumentów. Czy jest sposób, aby w locie przekonwertować tablicę na 2 argumenty? Na przykład:

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

Wystąpiłby błąd w Rubim. Potrzebuję wpisu a.slice(b[0],b[1])szukam czegoś bardziej eleganckiego, jak w a.slice(foo.bar(b)) dziękczynieniu.


Odpowiedzi:


104

Możesz zamienić Arrayargument na listę argumentów za pomocą *operatora (lub „splat”):

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

Odniesienie:


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.