在 Elixir 中,什么时候我们在原子名称之前或之后使用冒号?

2024-02-04

我正忙于学习 Elixir 并了解什么是原子。上基本类型页面 http://elixir-lang.org/getting-started/basic-types.html他们是这样介绍的:

:foo

然而,当我们遇到关键词列表 http://elixir-lang.org/getting-started/keywords-and-maps.html我们看到这样的原子

list = [{:a, 1}, {:b, 2}]   # list of tuples
list == [a: 1, b: 2]        # evaluates as true

冒号的位置已被交换,出现在原子名称之后。

似乎当原子是关键时,冒号的位置就会发生变化。这确实使代码更易于阅读,因为它非常具有表现力,但我找不到任何直接参考来说明为什么会出现这种情况(这不是我正在查看的学习 Elixir 的唯一网站)。

有人可以确认我假设原子在列表中的关键时将冒号放在右侧是正确的吗?

对我来说,这只会使代码更漂亮,但实际上我缺少一些更深入的理解why有时候是这样的?


是的,它只是原子键的语法糖。它的实现可能是因为原子被广泛用作关键字列表和映射中的键,并且较短的语法使它们更易于阅读。正如您已经正确观察到的,以下 proplist 是等效的:

[{:a, 1}, {:b, 2}]
[a:1, b:2]

以下地图也是等效的:

%{:a => 1, :b => 2}
%{a: 1, b: 2}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Elixir 中,什么时候我们在原子名称之前或之后使用冒号? 的相关文章

随机推荐