如何在Elixir中使用捕获操作符从一个列表中捕获一个元组?

问题描述 投票:0回答:1

我无法理解如何使用捕获操作符来捕获一个元组。这是我的代码与函数。

MyList.map([{"person 1",27},{"person 2",20}], fn({name,_}) -> name end)                 
// ["person 1","person 2"]

有谁能帮助我,请告诉我如何通过捕获操作符来实现它,到目前为止,我已经试过了,但没有用。

MyList.map([{"person 1",27},{"person 2",20}], & &1}) // returns same List with same tuple
MyList.map([{"person 1",27},{"person 2",20}], &{&1,&2} &1) // error
elixir
1个回答
2
投票

这种确切的行为是不可能的,人们无法到达捕获术语的内部状态。&1, &2 等捕捉 全参数. 使用 Kernel.elem/2:

MyList.map([{"person 1",27},{"person 2",20}], & elem(&1, 0))
© www.soinside.com 2019 - 2024. All rights reserved.