我是Elixir的新手,所以我对这三个陈述感到困惑
a = [ [ 1, 2, 3 ] ]
[a] = [ [ 1, 2, 3 ] ]
[[a]] = [ [ 1, 2, 3 ] ]
Run Code Online (Sandbox Code Playgroud)
第一个和第二个语句按预期返回结果,但第三个语句引发错误
**(MatchError)右侧值不匹配:[[1,2,3]]
我想知道为什么第三句话会引起错误
Dog*_*ert 10
a匹配任何值.[a]匹配一个只包含一个元素的列表,该元素可以是任何值.[[a]]匹配一个元素的列表,该元素包含另一个恰好一个元素的列表,该元素可以是任何值.
表达式[[1, 2, 3]]匹配前两个模式但与第三个模式不匹配,因为它是包含三个元素的一个列表的列表.