Erlang: 是没有双引号的名字,还是字符串还是别的?

Erlang: is a name without double quotes, still a string or something else?

我是 Erlang 的新手,刚刚尝试了 shell:

Eshell V8.2  (abort with ^G)
1> Hello=hello.
hello
2> Hello.
hello
3> Point={point,10,45}.
{point,10,45}
4> Point2={"point",10,45}.
{"point",10,45}

Point中,第一个元素是'point',没有名为point的变量,所以它不是引用,没有double "",所以它不是字符串。但是shell没有报错。

那是什么?

它是一个原子。来自 documentation:

是一个字面量,一个有名字的常量。如果原子不是以小写字母开头,或者包含除字母数字字符、下划线 () 或 @_

以外的其他字符,则该原子将用单引号 (') 引起来

所以 point 这是一个有效的 Erlang 术语。 同样的想法也适用于 hello