gpt4 book ai didi

elixir - 列表的头尾分割不适用于大写字母

转载 作者:行者123 更新时间:2023-12-02 04:00:45 26 4
gpt4 key购买 nike

我刚刚开始研究 Elixir,过去我已经做过一些 SchemeProlog

我在 iex 中摆弄,我只是想看看是否可以在 Elixir 中分离列表的头部和尾部,就像你在 Scheme 中所做的那样。

所以我尝试了这个,这是我对头尾名称的习惯:

[H|T] = [2,4,6,8]

但是,它会引发错误:

** (MatchError) no match of right hand side value: [9, 8, 4, 2]

然后我尝试了:

[h|t] = [2,4,6,8]

它按预期工作。


为什么会发生这种情况?以大写字母开头的变量有什么特殊特征吗?谢谢。

最佳答案

以大写字母开头的标识符不是变量而是原子。 H 相当于原子 Elixir.H:

iex(1)> H == :"Elixir.H"
true

所以你的代码相当于:

[:"Elixir.H" | :"Elixir.T"] = [2, 4, 6, 8]

这显然会失败,因为 :"Elixir.H"!= 2:"Elixir.T"!= [4, 6, 8]

关于elixir - 列表的头尾分割不适用于大写字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38888476/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com