我在字符上拆分字符串,并希望修剪生成的拆分中的所有项目.我希望以下工作String.trim/1存在:
iex> "My delimited ! string of doom" |> String.split("!") |> Enum.map(String.trim)
** (UndefinedFunctionError) function String.trim/0 is undefined or private. Did you mean one of:
* trim/1
* trim/2
(elixir) String.trim()
Run Code Online (Sandbox Code Playgroud)
我收到一个UndefinedFunctionError表明该功能String.trim/0不存在的信息.我想要的是通过传递给匿名函数轻松完成Enum.map:
iex> "My delimited ! string of doom" |> String.split("!") |> Enum.map(fn (word) -> String.trim(word) end)
["My delimited", "string of doom"]
Run Code Online (Sandbox Code Playgroud)
是否Enum.map/2需要匿名函数作为第二个参数?是否可以将我想要的功能作为参数?
你需要使用& operator.
捕获操作员
试试这个:
iex()> "my delimited ! string of doom" |> String.split("!") |> Enum.map(&String.trim/1)
["my delimited", "string of doom"]
Run Code Online (Sandbox Code Playgroud)