Erlang原子
示例
原子是具有仅由名称本身标识的名称的对象。
原子是在Erlang中使用原子文字定义的,
以小写字母开头且仅包含字母,数字,下划线或@字符的无引号的字符串,或者
用单引号引起来的字符串
例子
1> hello. hello 2> hello_world. hello_world 3> world_Hello@. world_Hello@ 4> '1234'. '1234' 5> '!@#$%% ä'. '!@#$%% ä'
大多数Erlang程序中使用的原子
几乎每个Erlang程序中都会出现一些原子,特别是由于它们在标准库中的使用。
true和false用于表示相应的布尔值
ok通常用作仅出于效果而调用的函数的返回值,或者用作返回值的一部分,在两种情况下均表示成功执行
以同样的方式error用于表示错误情况,该情况不能保证上层函数尽早返回
undefined通常用作未指定值的占位符
用作标签
ok并且error通常用作元组的一部分,其中元组的第一个元素表示成功,而其他元素包含实际的返回值或错误条件:
func(Input) -> case Input of magic_value -> {ok, got_it}; _ -> {error, wrong_one} end. {ok, _} = func(SomeValue).
存储
使用原子时要记住的一件事是,它们被存储在内存中自己的全局表中,并且该表未进行垃圾回收,因此动态创建原子,尤其是在强烈建议用户不影响原子名称的情况下。