Pardonnez la question du débutant, mais dites que j'ai un tableau:
a = [1,2,3]
Et une fonction quelque part; disons que c'est une fonction d'instance:
class Ilike
def turtles(*args)
puts args.inspect
end
end
Comment invoquer Ilike.turtles
avec a
comme si j'appelais (Ilike.new).turtles(1,2,3)
.
Je connais send
, mais cela ne semble pas traduire un tableau en liste d'arguments.
Un parallèle de ce que je recherche est le Javascript apply
, qui est équivalent à call
mais convertit le tableau en une liste d'arguments.
Comme vous le savez, lorsque vous définissez une méthode, vous pouvez utiliser le *
pour transformer une liste d'arguments en tableau. De même, lorsque vous appelez une méthode, vous pouvez utiliser le *
pour transformer un tableau en une liste d'arguments. Donc, dans votre exemple, vous pouvez simplement faire:
Ilike.new.turtles(*a)