我想在运行时选择程序的例程。我在Elixir中找不到任何函数指针类型(或对方法的引用)。
defmodule MyModule do
def method do
choice()
end
end
我想提供一种在运行时选择的方法。怎么做?
答案 0 :(得分:3)
您可以将函数作为参数发送,然后调用该函数(使用.(
... )
),如下所示:
iex> defmodule MyModule do
> def my_method(choice) do
> choice.("hello")
> end
> end
然后在模块名称之前使用&
调用它,如:
iex> MyModule.my_method(&String.upcase/1)
"HELLO"