如何在 Elixir 中使用捕获运算符从列表中捕获元组?
How to use capture operator in Elixir to capture a tuple from a list?
我无法理解如何使用捕获运算符捕获元组。这是我的功能代码。
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
这种确切的行为是不可能的,无法到达捕获项的内部状态,&1
、&2
等捕获整个参数。使用 Kernel.elem/2
:
MyList.map([{"person 1",27},{"person 2",20}], & elem(&1, 0))
我无法理解如何使用捕获运算符捕获元组。这是我的功能代码。
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
这种确切的行为是不可能的,无法到达捕获项的内部状态,&1
、&2
等捕获整个参数。使用 Kernel.elem/2
:
MyList.map([{"person 1",27},{"person 2",20}], & elem(&1, 0))