erlang相关书籍网盘分享下载:https://blog.csdn.net/weixin_40352578/article/details/82944159
1.BIF
内建函数,erlang虚拟机中的操作,手册:http://www.erlang.org/doc/man/erlang.html
2.二进制数据
使用二进制存储大量的原始数据。
3.比特语法
X占3bit,Y占7bit,Z占6bit。
编写一些底层代码时,对二进制进行封包和解包。
比特语法表达式
4.问题集锦
(1)apply
动态计算函数名和模块名。
(2)属性
预定义模块属性:
-module(modname):modname必须是原子。
-compile(Options):给编译器选项里列表添加Options。注意:-compile(export_all),导出单签模块的所有函数。
-vsn(Version):指定模块的版本
用户定义属性:
-SomeTag(Value):SomeTag必须是原子。模块属性可以编译进模块并可以在运行时被提取出来。
(3)块表达式
将一串表达式组织成类似子句的实体。值为最后一个表达式的数值。可以在允许使用单个表达式的地方使用多个表达式的快表达式表示。
(4)布尔表达式
当编写函数,返回两个原子中的一个时候,返回布尔值。使用布尔值进行逻辑运算时候,操作数必须为布尔符号或者可以求出布尔值的布尔表达式。
(5)注释
erlang只有行注释,使用%。
(6)epp
epp是erlang的预处理器,用于扩展源文件中的宏,并且插入任何必须的包含文件。
(7)转义符
可以使用~w打印转义符的整数值。
(8)表达式和表达式序列
表达式序列使用逗号分开,结果是最后一个表达式的值。
(9)函数引用
内部函数引用:fun LocalFun/Arity。
外部函数引用:fun Mod:RemoteFunc/Arity.
(10)包含文件
-include(Filename)自定义.hrl文件。
-include_lib(Name):引入库中文件。
可以将记录放在包含文件中,多个模块文件对其引用。
(11)列表操作符++和--
A++B:列表附加
A--B:如果X在B中出现K次,那么A中删除K个X。
使用++进行模式匹配。[$b,$e,$g,$i,$n|T]。
(12)宏
epp预处理器对宏进行扩展。
注意:?FILE扩展为当前文件名
?MODULE扩展为当前模块名。
?LINE扩展为当前行号。
(13)在模式中使用匹配操作符
(14)进程字典
erlang中的每个进程都有自己的私有数据存储。
(15)比较表达式
number<atom<reference<fun<port<pid<tuple<list<binary.所有类型都有比较顺序,可以对任何类型的列表进行排序。
注意:(1)整数与浮点数进行比较,整数转换为浮点数。
(2)==适用于数值型比较(浮点数和整数)。=:=两个项目是否相等。
(3)注意使用模式匹配。F=fun(12)->...end,F(12.0),报错。
(16)下划线变量
使用_VarName的方式,可以将仅使用一次的变量消除警告。在模式匹配中可以使用_ValName的形式命名一个不准备使用的变量。