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

Héc*_*tor 1 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
Run Code Online (Sandbox Code Playgroud)

它工作正常,但我想知道是否有另一种方法可以做到这一点而不是使用&greet/1

mov*_*son 8

更惯用的是:

def main do
  ["Manuel Bartual", "El hijo de la Tomasa"]
  |> Enum.map(&greet/1)
end
Run Code Online (Sandbox Code Playgroud)
  1. 当函数中不需要参数时,不应使用括号。

  2. 管道运算符( |>) 是最惯用的 Elixir 功能之一。它表示,获取刚刚计算的结果并调用以下函数,将该结果作为第一个参数传递。