Ich würde gerne wissen, was genau ein Methodenname in Elixier ist:Wie kann eine Methode in Elixir dynamisch aufgerufen werden, indem sowohl der Name des Moduls als auch der Methode angegeben wird?
array = [1,2,3]
module_name = :lists
method_name = :nth # this not working
module_name.method_name(1, array) # error, undef function lists.method_name/2
module_name.nth(1, array) # returns 1, module_name is OK. It's an atom
Aber ich kann fast die gleiche Sache in erlang tun:
A = [1,2,3].
X = lists.
Y = nth.
X:Y(1,A). # returns 1
Wie kann ich dies tun in Elixier?
Gut. Der Methodenname ist also ein Atom. Jetzt denke ich, dass es nur die Syntax ist, die es uns nicht erlaubt, 'module.method' in elixir zu schreiben, oder? – halfelf
Ich glaube, Sie haben Recht. Ich denke, der einzige Weg, dies zum Laufen zu bringen, wäre, die Syntax so zu ändern, dass Atome beim Aufruf von Modulfunktionen verwendet werden (d. H. ': Lists.: Nth'). Ich würde lieber nur in solchen Fällen anwenden. – lastcanal
Danke. Diese Antwort ist sehr hilfreich. – halfelf