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:
Możesz zamienić
Array
argument 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:
źródło
Użyj tego
Nazywa się to operatorem splat
źródło