Erlang 基础学习 1

Erlang Day 1 基础

• 容错,在多核CPU上性能好,因为share nothing,因此并发特别好,concurrency oriented programming
• erlang 支持任意长度的整数计算,不会溢出
• module 和 function名字都必须是小写
• 变量必须以大写字母开头
• 变量实际上是不变的(常量),就和代数(Algebra)一样
• 变量的声明周期是在声明的那个代码单元(Unit)内,没有所谓的全局或者私有
• Erlang 中只有public和private的函数,public的函数是指export出去的,其他的是private的
• 没有protected之类的,因为没有继承,没tmd对象这玩意儿,继承个p啊
• 一个函数的声明是名字加上参数个数,例如start/1,stop/0

Pattern match 模式匹配
•   对于 X = 1234:
∘ First, X is not a variable , X 不是一个变量,或者说只能赋值一次的变量
∘ Second, = is not an assignment operator. =不是一个赋值
∘ 实际上, = 应该是一个模式匹配符号. 应该是理解为一个assert,如果不是true的话,就有错误
∘ = 实际作的事情是,计算右边的值,然后和左边的做匹配
• 这样的话,就不会有所谓的side-effect,导致程序工作不正常了
• 在模式匹配时,下划线(_) 表示匿名变量,可以匹配任何值

数值计算
• 4/2  等于 2.0  , / 总是浮点数计算
• 5 div 3 等于 1   ,   5 rem 3 等于 2,整数计算

Atoms 相当于枚举类型
• 以小写字母开始,可以有下划线和@符号,如 monday,argan@mydomain
• 或者,用单引号括起来,可以包含其他符号,如大写字母,+,* 等

Tuple 类似于结构体

• Person = {argan,29}.
• {Name,Age} = P...
• Name = argan.
• Age = 29.

List 列表
• 第一个元素,称之为Head,
• []代表空的List
• [H|T] ,将H这个元素放到T的头上,行程一个新的List
• ThingsToBuy = [{apples,10},{pears,6},{milk,3}].
• ThingsToBuy1 = [{oranges,4},{newspaper,1}|ThingsToBuy].
• 通过模式匹配来将List的内容取出,例如:
• [Oranges|ThingsToBuy2] = ThingsToBuy1.
• Oranges =  {oranges,4}.

Strings   字符串
• 严格来说,本来没有字符串,只有一个整数列表
• 必须用双引号(")括起来
• Name = "hello".
• [83,117,114,112,114,105,115,101] = "Surprise".
• 当一个整数的List里所有的数字刚好代表一个可打印的字符时,那这个List就是一个字符串了
• 用$ 加字符可以取得相对应的ascii码,如$a = 97.
• [$a,$r,$g,$a,$n] = "argan".
• iso-8859-1

• 在erlang的shell里输入f(). 让shellforget所有已经bound的值。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值