*Record(记录)概述
---概念
record是erlang提供的一种作用于元组的语法,提供了给元组中元素命名的机制,以方便操作元组中的元素,实现了更加有序的元组.
---语法
-record(Record_Name,   %%或许更合适的说法是Record_Type,以后通过#RecordName的方式创建记录的实例,这里的Record_Name并非表示定义中的元组/记录实例.
            {
                key1 = Default1,
                key2 = Default2,
                ...
                keyn,  //keyn = undefined
                ...
            }).

 

*记录的一般使用
以下以记录示例:
-record(dzh_info,{name=dzh,age=27}).
1)复制/更新记录,根据记录的名称复制产生记录,原来记录的内容不改变.语法:变量 = #记录类型{有内容时更新原有的定义}
X1 = #dzh_info{name=daizhong}. ->#dzh_info{name=daizhong,age=27}.  %%"{...}"里面可以对dzh_info定义的内容重新赋值,但是不会改变dzh_info.
2)通过记录实现变量的模式匹配
#dzh_info{name=Name,age=Age} = X1.                  %%Name.->daizhong,Age.->27.
3)获取记录的一个域值,语法:记录实例#记录类型.域名
X1#dzh_info.name. –>daizhong

 

*测试程序

records.hrl
t_records.erl
测试结果

 

*记录在shell中的命令
--rr(记录定义文件)        %% 加载记录定义
--rf(记录名)                 %% 删除记录定义

终端示例

注,shell的详细内容见http://www.erlang.org/doc/man/shell.html

 

*总结

---在运行时是没有记录的概念的,记录的实例就是元组.所以我觉得记录属于编译时的一种机制,有助于编写更加灵活的程序.

posted on 2012-01-03 06:25  戴忠  阅读(1278)  评论(0编辑  收藏  举报