Elixir 语言捕获函数

示例

使用&从其他模块捕获函数。可以将捕获的函数直接用作函数参数,也可以在匿名函数中使用。

Enum.map(list, fn(x) -> String.capitalize(x) end)

可以使用以下方法变得更简洁&:

Enum.map(list, &String.capitalize(&1))

在不传递任何参数的情况下捕获函数需要您明确指定其Arity,例如&String.capitalize/1:

defmodule Bob do
  def say(message, f \\ &String.capitalize/1) do
    f.(message)
  end
end