- 如果原子不以小写字符开头或者其中包含有除字母,数字,下划线以及@符号之外的其他字符,那么必须放在两个单引号’ '之间,‘Atom’, 原子加上单引号和原来的原子相等.
- 用变量获取if或者case … of 表达式返回值,往下继续处理,避免在表达式里的逻辑层次太深.
Var = if xxx ->
Var = case xxx of
- case表达式代码写起来会比较整洁.
case expression of
Res1 ->
xxx;
Res2 ->
yyy
end.
- 常用配置可以用define定义
-define(ETS_OPTIONS, [named_table, public, set, {read_concurrency, true}, {write_concurrency, true}]).
- 公共服务进程,例如帮会,对外调用不能用call,因为call会挂起进程不能处理后续的消息,只能使用cast.
- Erlang中的循环都要拆分成尾递归处理,尾递归函数一次只处理一个元素.
尾递归函数编写套路,一般需要编写以下三个函数:
①. 递归入口函数,传入待处理参数,以及初始化累计器变量,然后调用尾递归处理函数;
②. 正常参数的尾递归处理函数,处理每一个元素, 函数一般以tail_开头;
③. 特殊参数的尾递归处理函数,例如结束调用函数,参数常见为