Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5120175
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2012-10-23 12:08:24

record作为erlang的一种数据结构(特殊的Tuple,类似数组),通常用于函数量传递. 
我们也可以选择ETS内存表作为存放record,Ets非常适合大量临时数据存储,最重要 
的是ETS可以和record进行无逢结合. 
  1. %%在Eshell下声明record users
  2. 1> rd(users, {uid,website="t.qq.com/lajabs",name,time=time()}).
  3. users
  4. %%对ets建表,并创建以record元素uid作为索引键,以下的增删改查都将使用它
  5. 2> ets:new(users,[public,set,named_table,{keypos, #users.uid}]).
  6. users
  7. %%创建record,并对元素赋值
  8. 3> Users=#users{uid=101,name=lajabs}.
  9. #users{uid = 101,website="t.qq.com/lajabs",name = lajabs,
  10.        time = {16,48,32}}
  11. %%将创建好的record存入ets
  12. 4> ets:insert(users,Users).
  13. true
  14. %%创建第二个record
  15. 5> Users2=#users{uid=102,name=laja2}.
  16. #users{uid = 102,website="t.qq.com/lajabs",name = laja2,
  17.        time = {16,49,16}}
  18. %%把record users也存入ets,这时users表中有2笔记录
  19. 6> ets:insert(users,Users2).
  20. true
  21. %%尝试查询uid(索引键)为102的记录,成功返回record(之前定义的变量Users2),需要注意返回的是列表([])
  22. 7> ets:lookup(users,102).
  23. [#users{uid = 102,website="t.qq.com/lajabs",name = laja2,
  24.         time = {16,49,16}}]
  25. %%对ets更新record,将元素name改为'hello'
  26. 8> ets:update_element(users,102,{#users.name, hello}).
  27. true
  28. %%查看修改后的结果,发现已经更改成功
  29. 9> ets:lookup(users,102).
  30. [#users{uid = 102,website="t.qq.com/lajabs",name = hello,
  31.         time = {16,49,16}}]
  32. %%删除uid(索引键)为102的记录
  33. 10> ets:delete(users,102).
  34. true
  35. %%查看结果,已删除成功,返回的是空列表[]
  36. 11> ets:lookup(users,102).
  37. []
  38. %%查询记录中的某个元素值可以用以下方式
  39. 12> ets:lookup_element(users,101,#users.name).
  40. lajabs

文章来自:http://www.cnblogs.com/orez88/articles/1866165.html

阅读(926) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~