【发布时间】:2018-06-19 01:46:20
【问题描述】:
这里是灵药新手。试图通过官方文档了解基础知识,我偶然发现了一段我不太理解的代码,也找不到明确搜索它的方法。
iex> "he" <> rest = "hello"
"hello"
iex> rest
"llo"
来源:https://elixir-lang.org/getting-started/binaries-strings-and-char-lists.html
我不明白的是运算符的组合是如何工作的,以及在与“he”模式匹配后,rest 如何分配剩余的字符串。我试图通过如下括号来理解使用优先级:
案例 1 - 显然不一样
iex(1)> "he" <> (rest = "hello")
"hehello"
iex(2)> rest
"hello"
案例 2 - 看起来一样,但我仍然不明白它是如何工作的。
iex(1)> ("he" <> rest) = "hello"
"hello"
iex(2)> rest
"llo"
我不明白,因为 rest 最初在这里是未定义的,这更像是下面的代码,这是前面提到的示例之前的文档中的代码。
iex(1)> <<"he", rest :: binary >> = "hello"
"hello"
iex(2)> rest
"llo"
【问题讨论】:
标签: elixir