我正在阅读Dave Thomas Programming Elixir的书,我对本书模式匹配部分的一些结果感到困惑.特别是,请看以下示例:[a] = [[1, 2, 3]]
我的解释是比赛应该成功,但价值a应该是[1, 2, 3]; 相反,它是[[1, 2, 3]].
有人可以帮我解释一下结果如何成为匹配运算符整个右侧的值?为什么输出的输出a = [[1, 2, 3]]没有什么不同[a] = [[1, 2, 3]]?
实际上它是不同的.模式匹配时
[a] = [[1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)
然后a成了[1, 2, 3].你是对的.您看到的输出iex就是控制台显示它的方式.如果你检查a它的值将是[1, 2, 3]预期的.
当你匹配
a = [[1, 2, 3]]
Run Code Online (Sandbox Code Playgroud)
然后a成了[[1, 2, 3]]