我想在运行时选择程序的例程。我在 Elixir 中找不到任何函数指针类型(或对方法的引用)。
defmodule MyModule do
def method do
choice()
end
end
Run Code Online (Sandbox Code Playgroud)
我想给出一种在运行时选择的方法。这该怎么做?
您可以发送一个函数作为参数,然后像这样调用该函数(使用.(... )):
iex> defmodule MyModule do
> def my_method(choice) do
> choice.("hello")
> end
> end
Run Code Online (Sandbox Code Playgroud)
然后&在模块名称之前使用它来调用它,例如:
iex> MyModule.my_method(&String.upcase/1)
"HELLO"
Run Code Online (Sandbox Code Playgroud)