我正在学习Elixir,我想知道是否有更好的方法将函数指针传递给Enum.map。我有这段代码:
defmodule MyModule do
defp greet(person) do
IO.puts "Hello " <> person
end
def main() do
people = ["Manuel Bartual", "El hijo de la Tomasa"]
Enum.map(people, &greet/1)
end
end
它工作正常,但我想知道是否有另一种方法可以做到这一点,而不是使用&greet/1
答案 0 :(得分:4)
更惯用的是:
def main do
["Manuel Bartual", "El hijo de la Tomasa"]
|> Enum.map(&greet/1)
end
你should not use parentheses当函数中不需要参数时。
pipeline operator(|>
)是最常用的Elixir功能之一。它说,取刚刚评估的结果并调用以下函数将该结果作为第一个参数传递。