有没有一种方法可以在Elixir的模式匹配中引用整个变量?

时间:2014-01-04 12:41:00

标签: pattern-matching elixir

Haskell中有一个 as-pattern ,它允许我们在模式匹配时引用整个变量:

foo wholeList@(head:tail) = wholeList ++ head

变量wholeList代表原始变量。

假设head["Hello"]tail["World"],则wholeList["Hello", "World"]

使用as-pattern,我们可以通过连接headtail来避免再次构造变量。

Elixir中是否存在此类功能?

1 个答案:

答案 0 :(得分:7)

是的,这是可能的。只需在您的模式中使用=

def foo(list = [h|t]), do: list ++ h