记录 record

记录  record

提供了一种方法吧一个名称与元组中的一个元素对应起来,从而便于区分元组中的各个元素的含义。定义方法:

-record(Name, { key1 = Default1, key2 = Default2, key3, key4=undefined, ….}

其中key3 与 key4=undefined 是等效写法;

Name:记录的名字;

Key1, key2, key3, key4 这些是记录中的字段名,且必须是元子;

注意:record 不是一个shell命令,不能在shell中使用,只能用于erlang源码中;在shell中应该使用rr命令读取hrl记录定义文件

保存为 .hrl 扩展名的文件,以保证不同的erlang模块使用相同的记录定义

保存为records.hrl

%%记录 定义

-record(

todo,

{

status=abc,

who=usr,

text

}

).

Shell中执行:

1> rr(“records.hrl”).

[todo]

2> X1 = #todo{}.

#todo{status = reminder,who = joe,text = undefined}

3> X2 = #todo{who=zhys9, text=”erlang”}.

#todo{status = reminder,who = zhys9,text = ”erlang”}

4> X3 = X2#todo{text=”copy of X2″}.

#todo{status = reminder,who = zhys9,text = ”copy of X2″}

5> X3#todo.text.

“copy of X2″

6> X2#todo.text.

“erlang”


说明一下:

1> 加载记录定义

2> 实例化一个todo类型的记录,所有字段值都按照记录的默认值

3> 实例化一个todo类型的记录,并指定whotext字段的值

4> copy变量X2并修改text字段的值为copy of X2“,赋值给X3

5> 通过记录,获取X3text字段的值

6> 通过记录,获取X2text字段的值

特别注意的是,X3X2copy与被copy的关系,当X3的字段值发生改变后,X2的字段没有变化!

另外一种从记录中提取字段值的方法依旧是模式匹配:

7> #todo{status=Y, who=Z,text=T}=X2.

#todo{status = reminder,who = zhys9,text = ”erlang”}

8> Y.

12

9> Z.

zhys9

10> T.

“erlang”
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值