Pregunta ruby convertir matriz en argumentos de funciones


Digamos que tengo una matriz. Deseo pasar la matriz a una función. La función, sin embargo, espera dos argumentos. ¿Hay alguna forma de convertir sobre la marcha la matriz en 2 argumentos? Por ejemplo:

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

Omitiría un error en Ruby. Necesito ingresar a.slice(b[0],b[1]) Estoy buscando algo más elegante, como en a.slice(foo.bar(b)) Gracias.


76
2018-02-19 13:40


origen


Respuestas:


Puedes convertir un Array en una lista de argumentos con el * (o "splat") operador:

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

Referencia:


67
2018-02-19 13:46



Utilizar esta

a.slice(*b)

Se llama el operador splat


89
2018-02-19 13:42