×

顺序编程

Erlang ShellErlang 模块与函数Erlang 原子类型Erlang 列表Erlang 映射 (Map)Erlang 标准模块与使用手册Erlang 输出至终端Erlang 完整示例匹配、Guards 与变量的作用域Erlang 列表Erlang if 与 caseErlang 内置函数 (BIF)Erlang 高阶函数 (Fun)

并发编程

Erlang 进程Erlang 消息传递Erlang 注册进程名称Erlang 分布式编程Erlang 完整示例Erlang 健壮性Erlang 超时处理Erlang 错误处理Erlang 完善后实例

记录与宏

Erlang 程序分布Erlang 头文件Erlang 记录Erlang 宏

Erlang 记录


记录的定义如下:

-record(name_of_record,{field_name1, field_name2, field_name3, ......}).

例如,

-record(message_to,{to_name, message}).

这等价于:

{message_to, To_Name, Message}

用一个例子来说明怎样创建一个记录:

#message_to{message="hello", to_name=fred)

上面的代码创建了如下的记录:

{message_to, fred, "hello"}

注意,使用这种方式创建记录时,你不需要考虑给每个部分赋值时的顺序问题。这样做的另外一个优势在于你可以把接口一并定义在头文件中,这样修改接口会变得非常容易。例如,如果你想在记录中添加一个新的域,你只需要在使用该新域的地方进行修改就可以了,而不需要在每个使用记录的地方都进行修改。如果你在创建记录时漏掉了其中的某些域,则这些域会得到一个默认的原子值 undefined。

使用记录进行模式匹配与创建记录是一样。例如,在 receive 的 case 中:

#message_to{to_name=ToName, message=Message} ->

这与下面的代码是一样的:

{message_to, ToName, Message}

分类导航

关注微信下载离线手册

bootwiki移动版 bootwiki
(群号:472910771)