【问题标题】:Elixir, Pattern Matching, and Nested ListsElixir、模式匹配和嵌套列表
【发布时间】:2015-12-19 21:17:36
【问题描述】:

我正在阅读 Dave Thomas Programming Elixir 一书,我对书中模式匹配部分的一些结果感到困惑。具体来说,举个例子:[a] = [[1, 2, 3]]

我的解释是匹配应该成功,但是a的值应该是[1, 2, 3];相反,它是[[1, 2, 3]]

有人可以帮我解释一下结果是如何成为匹配运算符整个右侧的值的吗?为什么a = [[1, 2, 3]]的输出和[a] = [[1, 2, 3]]的输出没有区别?

【问题讨论】:

    标签: list elixir


    【解决方案1】:

    其实不一样。 当你模式匹配时

    [a] = [[1, 2, 3]] 
    

    然后a 变成了[1, 2, 3]。你是对的。 您在iex 中看到的输出只是控制台显示它的方式。如果您检查 a 的值,它将是 [1, 2, 3],正如预期的那样。

    当你匹配时

    a = [[1, 2, 3]]
    

    然后a变成[[1, 2, 3]]

    【讨论】:

    • 澄清一下:在每个表达式之后,iex 都会打印返回值。匹配的返回值恰好是整个匹配值。
    猜你喜欢
    • 2013-02-03
    • 2016-11-07
    • 2022-01-11
    • 1970-01-01
    • 2017-06-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-25
    相关资源
    最近更新 更多