27
我想知道確切的方法名是什麼仙丹:如何通過指定模塊和方法名稱在Elixir中動態調用方法?
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
但我幾乎可以做同樣的事情在二郎:
A = [1,2,3].
X = lists.
Y = nth.
X:Y(1,A). # returns 1
我怎樣才能做到這一點的靈藥?
好。所以方法名稱是一個原子。現在我認爲這只是不允許我們在elixir中編寫'module.method'的語法,對吧? – halfelf
我相信你是對的。我認爲做這個工作的唯一方法是在調用模塊函數時改變使用原子的語法(即':lists。:nth')。我寧願在這種情況下使用apply。 – lastcanal
謝謝。這個答案是非常有幫助的。 – halfelf