record记录通过下面这种语法定义:
-record(Name,{
key1,
key2,
...
key}).
其中Name是记录的名字,key1,key2等是字段名。(注意,是小写开头的原子)
下面一个记录的例子:
-record(todo,{status=remainder,who=joe,text}).
创建一个记录的方法如下:
X=#tudo{}.
此时,X记录的字段全是默认值
X1=#tudo{text="Fix errata in book"}.
此时X1前两个字段值是默认值,text是指定值。
X2=X#todo{who=bob}
此时X2的值和X相同,除了who字段外。
取记录的字段内容:
X2#todo.who 得到X2的who字段内容。
从记录中提取字段值:
#tudo{who=W,text=Txt} = X1.
此时W=joe Txt ="Fix errata in book"
在函数中对记录进行匹配:
-module(tut).
-export([area/1,myf/0]).
-record(tudo,{who,text}).
area(#tudo{who=W,text=T})->
{W,T}.
myf()->
X=#tudo{who=joe,text="abc"},
area(X).