在Elixir中选择运行时的方法(函数指针类型)

时间:2014-03-23 05:58:06

标签: elixir

我想在运行时选择程序的例程。我在Elixir中找不到任何函数指针类型(或对方法的引用)。

defmodule MyModule do
    def method do
        choice()
    end
end

我想提供一种在运行时选择的方法。怎么做?

1 个答案:

答案 0 :(得分:3)

您可以将函数作为参数发送,然后调用该函数(使用.( ... )),如下所示:

iex> defmodule MyModule do
   >     def my_method(choice) do
   >         choice.("hello")
   >     end
   >  end

然后在模块名称之前使用&调用它,如:

iex> MyModule.my_method(&String.upcase/1)
"HELLO"