??xml version="1.0" encoding="utf-8" standalone="yes"?>
1. 高负?/span>
2. 正常q{
3. 定w?/span>
4. 分布?/span>
5. Ҏ伸羃
ErlangQ读韻I['ə:læŋ]厄兰Q中文意思ؓQ占U小Ӟ话务负蝲单位Q)正是׃它属于开攄电信业务q_Q也׃隄解它的意义了。几乎完全具备以上特质,而且它也是典型的函数式语a。和我们OOP的思想有着截然不同的概c在以下的学习过E中主要q是以?/span>ErlangE序设计》这本书作ؓ一个学习的依据?/span>
原子
定义Q在Erlang中原子用来表CZ同的非数字常量倹{?/span>q里说白了其实就是一U常量的定义?/span>Erlang中原子是全局有效的,不需要像以前c/c++那样通过宏来定义或者包含文件。在定义原子的时候只需要注意以下一些特点就可以Q?/span>
1. 一般情况原子是以一串以写字母开_后面有数字、字母、下划线、邮件符P@Q;
2. 使用单引号引用v来的字符也属于原子,例如’Monday’Q?/span>
3. 一个原子的值就是原子本w;
元组Q?/span>tupleQ?/span>
定义Q首先它?/span>Erlang中具有特质的一个定义,如果说把它和我们java中的一?/span>JavaBean来类比可能稍昄|书上引用的是c语言数据l构来解说元l的l构Q尽非强浅显能看懂。但是作Z?/span>javaE序员我觉得采用自己熟悉的语al构来对比,学习效果更佳吧(对于记忆有很大帮助)?/span>
比如我们一般对?/span>JavaBean的定义是如下l构Q?/span>
public class Person {
private String name;
private int height;
private int footSize;
private String eyeColor;
// get/set...
}
那在我们引用定义的时候就可以直接Q?/span>
Person person1=new Person();
person1.setName("yeshucheng");
person1.setHeight(111);
person1.setFootSize(40);
person1.setEyeColor("black");
......
与之相对应的是我们?/span>Erlang来定义了Q对?/span>Erlang的定义就截然?/span>c/c++或?/span>java有着明显不同Q相对于更加_明了Q(q里我直接用书上说的所谓二元组Q?/span>
Person={person,{name,yeshucheng},{height,111},{footsize,40},{eyecolor,black}}.
没错Q就是这么直截了当的来定义,甚至赋|严格?/span>Erlang不能q么_但是Z好记忆可以这么理解)
对于以上的定义这里要说明注意的地方:
1. 定义元组Q元l中字段没有名字Q通常可以使用一个原子作为元l的W一元素来标明(h意这里花括号内第一原子都是解释逗号后面一个说?/span>Q,q个元组所能代表的含义是上面列出的程序定义了?/span>
2. 创徏元组Q在声明元组的同时其实已l创Z元组Q这个也?/span>Erlang的一大特点之一了。如果不再用,也随之销毁?/span>Erlang使用的垃圾搜集器L回没有用的内存?/span>
如:F={firstName,wan}
L={lastName,andy}
P={person,F,L}//q里应Ҏ们第一条说明的一L一个名U表C就是后面所有逗号的整体列举,如果?/span>Erlang环境中对于上面写完后Q直接敲回RQ语句结束后存在”.”q里E微注意下)׃得到以下l果Q正好印证我们所说明q这个问题了
==?/span>{persong,{firstName,wan},{lastName,andy}}.
如果在创E中存在一个未定义的变量,则程序编译就会生错误?/span>
3. 提取元组的字D|刚才我们在程序中有定义一?/span>Person的元l而且也设|gQ现在如果我们想得到或者说提取我们的|那需要如何而做呢?首先我们采用基本的元l方式来试着看看如下Q?/span>
1> Point={point,10,45}.
2> {point,X,Y}=Point.
3> X.
10
4> Y.
45
注明Q这里又再次?/span>point逗号后面的都是ؓ他而说明的?/span>
1>Person={person,{name,yeshucheng},{height,111},{footsize,40},{eyecolor,black}}.
2>{_,{_,Who},{_,_},{_,_},{_,_}}=Person.
3>Who.
yeshucheng
说明下,如果上面惛_到的是|那么位置响应对号入然后Who换成What成Q我开始也犯错误,~译立马出错Q后来想想用q一?/span>What试试Q果然正,呵呵Q?/span>
列表
定义Q列表第一个元素称为列表的_headQ?/span>,后部分称为列表尾Q?/span>tailQ,一?/span>[H|T]来标C列表了?/span>
注:列表的头可以是Q何东西,但是列表的尾通常q是一个列表?/span>
至于具体的细节问题还是需要找扄x档看下ؓ好,它的概念牉|到后面的非常多的定义了?/span>