Chciałbym wiedzieć, co dokładnie nazwę metoda jest eliksir:Jak wywołać metodę dynamicznie w eliksirie, podając nazwę modułu i metody?
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
Ale mogę zrobić prawie to samo w Erlang:
A = [1,2,3].
X = lists.
Y = nth.
X:Y(1,A). # returns 1
Jak mogę to zrobić w eliksir?
Dobrze. Tak więc nazwa metody jest atomem. Teraz myślę, że to tylko składnia, która nie pozwala nam pisać 'module.method' w eliksiru, prawda? – halfelf
Wierzę, że masz rację. Myślę, że jedynym sposobem na wykonanie tej pracy byłoby zmiana składni, aby używać atomów podczas wywoływania funkcji modułu (tj. ': List.: Nth'). Wolałbym po prostu użyć zastosować w takich przypadkach. – lastcanal
Dzięki. Ta odpowiedź jest bardzo pomocna. – halfelf