在Elixir中将函数传递给Enum.map
我正在学习Elixir,我想知道是否有更好的方法将函数指针传递到Enum.map。我有以下代码:在Elixir中将函数传递给Enum.map,elixir,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,
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
defmodule MyModule do
defp问候(人)do
爱娥说“你好”的人
结束
def main()do
people=[“Manuel Bartual”,“El hijo de la Tomasa”]
枚举映射(人物和问候语/1)
结束
结束
它工作得很好,但我想知道是否有其他方法可以代替使用
&greet/1
更惯用的方法是:
def main do
["Manuel Bartual", "El hijo de la Tomasa"]
|> Enum.map(&greet/1)
end
|>
)是最常用的长生不老药特性之一。它说,取刚刚计算的结果,并调用下面的函数,将该结果作为第一个参数传递更惯用的说法是:
def main do
["Manuel Bartual", "El hijo de la Tomasa"]
|> Enum.map(&greet/1)
end
|>
)是最常用的长生不老药特性之一。它说,取刚刚计算的结果,并调用下面的函数,将该结果作为第一个参数传递&greet/1
(根据Jose的说法,这显然是长生不老药最好的功能)有什么问题?换句话说,你希望它看起来像什么<例如,code>Enum.map(people,fn person->IO.puts“Hello”person end)就可以了Enum.map(people,&greet(&1))
也可以。实际上,这没关系,但我只是想知道这是否是惯用的方式。我刚开始服用长生不老药,这要看情况而定。如果私有函数MyModule.greet/1
存在的唯一目的是用作映射器,我会选择barefn person->。。。结束
。明白了,谢谢。&greet/1
(据何塞说,这显然是长生不老药最好的功能)有什么问题吗?换句话说,你希望它看起来像什么<例如,code>Enum.map(people,fn person->IO.puts“Hello”person end)就可以了Enum.map(people,&greet(&1))
也可以。实际上,这没关系,但我只是想知道这是否是惯用的方式。我刚开始服用长生不老药,这要看情况而定。如果私有函数MyModule.greet/1
存在的唯一目的是用作映射器,我会选择barefn person->。。。结束
。明白了,谢谢