将函数传递给Elixir中的Enum.map

时间:2017-08-28 12:02:21

标签: elixir

我正在学习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

1 个答案:

答案 0 :(得分:4)

更惯用的是:

def main do
  ["Manuel Bartual", "El hijo de la Tomasa"]
  |> Enum.map(&greet/1)
end
  1. should not use parentheses当函数中不需要参数时。

  2. pipeline operator|>)是最常用的Elixir功能之一。它说,取刚刚评估的结果并调用以下函数将该结果作为第一个参数传递。