erlang之介绍record


*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

*总结

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

优质内容筛选与推荐>>
1、WordPress 3.1发布
2、The remote system refused the connection
3、在Mac OS X中使用VIM开发STM32(4)
4、函数编程中的递归思想
5、Android基于box2d开发弹弓类游戏[五]-------------发射子弹


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号





    联系我们

    欢迎来到TinyMind。

    关于TinyMind的内容或商务合作、网站建议,举报不良信息等均可联系我们。

    TinyMind客服邮箱:support@tinymind.net.cn