捕捉功能
使用 &
捕获其他模块的功能。你可以将捕获的函数直接用作函数参数或匿名函数。
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