学习record相关知识
2012-11-21 23:52
302 查看
概念:
当使用元组进行编程的时候,如果过于庞大的元素数量,将会很难记住。Record提出来,是用于提供C语言里面的一种类似structure的一个有着固定数目字段的数据结构。
记录定义:
构造一个record:
实例代码:
测试:
命令行record相关:
加载命令
rr(RecordName).
删除加载命令
rf(RecordName).
注意的知识点:
1. 定义record;
2. 如何构造record;
3. 如何访问到成员;
4. 如何嵌套数据结构;
5. record的模式匹配;
本质上来说,record在内存中的表现是一个元组[Tuple],-record是一个用于将元组,符号化解析出来。如果学过C语言的都知道,我们可以定一个struct,然后将一块内存强制转换成为这个struct的指针;一个意思。
当使用元组进行编程的时候,如果过于庞大的元素数量,将会很难记住。Record提出来,是用于提供C语言里面的一种类似structure的一个有着固定数目字段的数据结构。
记录定义:
-record( person,{ name, age, phone }).
构造一个record:
P1=#person{ name=”Jason.Bourne”, age = 19, phone=119 }.
实例代码:
%% %% Author: erlang.hell %% Date: 2012-11-21 %% -module(t_record). -export([autoTest/0]). -record(location,{x=0,y=0}). -record(person,{ name, age=0, phone=110,location=#location{x=250,y=250} } ). autoTest()-> P1=#person{ name="Jason Bourne", age=19, phone=119 }, P2=#person{ name="Erlang Hell"}, showPerson(P1), showPerson(P2), N_P2=birthday(P2), showPerson(N_P2), NN_P2=birthdayEx(N_P2), showPersonEx(NN_P2), N_P1=bourneBirthday(P1), showPersonEx(N_P1). showPerson(P)-> io:format("name: ~p age: ~p phone: ~p\n", [P#person.name,P#person.age,P#person.phone]). showPersonEx(#person{age=Age,name=Name,phone=Phone,location=L})-> io:format("show_EX name: ~p age: ~p phone: ~p x: ~p y: ~p\n", [Name,Age,Phone,L#location.x,L#location.y]). birthday(P)-> P#person{age=P#person.age + 1 }. birthdayEx(#person{age=Age}=P)-> P#person{age=Age+1}. %% just for Jason Bourne bourneBirthday( #person{age=Age,name="Jason Bourne"}=P)-> P#person{age=Age+ 1 }; bourneBirthday( P ) -> P.
测试:
41> f(). ok 42> c(t_record). {ok,t_record} 43> t_record:autoTest(). name: "Jason Bourne" age: 19 phone: 119 name: "Erlang Hell" age: 0 phone: 110 name: "Erlang Hell" age: 1 phone: 110 show_EX name: "Erlang Hell" age: 2 phone: 110 x: 250 y: 250 show_EX name: "Jason Bourne" age: 20 phone: 119 x: 250 y: 250 ok
命令行record相关:
加载命令
rr(RecordName).
删除加载命令
rf(RecordName).
注意的知识点:
1. 定义record;
2. 如何构造record;
3. 如何访问到成员;
4. 如何嵌套数据结构;
5. record的模式匹配;
本质上来说,record在内存中的表现是一个元组[Tuple],-record是一个用于将元组,符号化解析出来。如果学过C语言的都知道,我们可以定一个struct,然后将一块内存强制转换成为这个struct的指针;一个意思。
相关文章推荐
- Python 网络编程相关知识学习
- ADO学习(七)ADOX相关知识
- 操作系统线程相关知识学习
- 性能测试学习中的问题与解答4--关联的相关知识
- 洗牌发牌程序(学习相关知识并实现运行)
- 学习Ruby你需要了解的相关知识(rvm, gem, bundle, rake, rails等)
- 学习BMP相关知识的笔记
- 死锁相关知识的学习
- android成长日记 11.详细学习了数据存储相关基础知识
- 【Spring】Spring Security 相关知识学习总结
- View相关知识学习总结
- ViewGroup和View中onTouchEvent和onInterceptTouchEvent相关知识学习
- 宝宝打疫苗的相关知识,新手妈妈可以学习一下
- 相关基础知识的查找学习网站
- 介绍有关学习C++ STL的预备知识和STL的相关背景知识,适合想对STL做大致了解的初学者
- dll 学习相关知识总结
- PE结构、SEH相关知识学习笔记
- JVM的相关知识整理和学习
- javaweb学习笔记:web应用的相关知识
- J2EE学习笔记一:相关概念和基础知识