You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Elixir中如何将Enum管道操作结果赋值给变量?

Elixir:将管道运算符链的结果赋值给变量

你写的代码里用了<-是错误的——Elixir的赋值运算符是=,不是这个箭头符号。

要把管道链的最终结果赋值给变量,只需要用普通的赋值语法,把变量放在=左侧,管道链放在右侧即可,正确写法示例:

data =
  some_list
  |> Enum.map(&(&1 * 2))  # 注意:Enum.map必须传入处理元素的函数,你原代码缺了这个参数
  |> Enum.sort()

这样data就会存储整个管道链的最终结果。管道运算符|>的作用是将前一步的执行结果,作为下一个函数的第一个参数传入,所以上面的代码完全等价于:

mapped_data = Enum.map(some_list, &(&1 * 2))
data = Enum.sort(mapped_data)

另外要注意,你原代码里的Enum.map()是不合法的,因为Enum.map/2需要两个参数:待处理的枚举对象和元素处理函数,管道会自动把some_list作为第一个参数传递,但你必须手动提供第二个函数参数,否则会触发参数数量不匹配的错误。

内容的提问来源于stack exchange,提问作者henhen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.12 14:22:05