差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
public:it:erlang [2016/10/19 10:04] – oakfire | public:it:erlang [2018/02/28 13:48] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 2: | 行 2: | ||
* Official site: | * Official site: | ||
* [[http:// | * [[http:// | ||
+ | ===== Books ===== | ||
+ | * [[http:// | ||
+ | |||
+ | |||
+ | ===== 学习新语言的一般步骤 ===== | ||
+ | |||
+ | * 了解该语言的出生背景与适用环境 | ||
+ | * 引自[[https:// | ||
+ | * erlang 语言致力于构建大规模可扩展高可用的实时系统。 | ||
+ | * erlang 运行时系统支持高并发,分布式,高容错。 | ||
+ | * OTP 是个 erlang 功能库,并提供插件开发的原则框架。 | ||
+ | * 了解输入输出流, | ||
+ | * 流操作 [[http:// | ||
+ | * 文件操作 [[http:// | ||
+ | * 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制 | ||
+ | * 代码由 **modules** 构成,一个 module 由 属性 于 函数构成,以'' | ||
+ | * module 可包含很多 预定义属性,具体见教程; | ||
+ | * 只有单行注释符号'' | ||
+ | * 了解该语言的基本数据类型 | ||
+ | * **integers, floats**: 除传统数值表示,有两种 erlang 独特的表示方法: | ||
+ | * $char : 表示 char 的ascii码或 unicode 码数值; | ||
+ | * base#value : base 为进制(2~36),比如 2#1101, 8#15, 16#d 为相同数值; | ||
+ | * **Atom** : 表示字符数字组成的名称常量,如果有空格,@等特殊字符或非小写字母开头,则要使用单引号扩起来,如 '' | ||
+ | * **bit strings** : 用来表示还没区分类型的内存存储数值(有点像 nodejs 的 Buffer): ''<< | ||
+ | * **reference** : 引用,由 '' | ||
+ | * **Fun** : 函数对象'' | ||
+ | * **Port Identifier** : erlang port, 由'' | ||
+ | * **pid** : erlang process(不同于一般进程的概念)的标识,由'' | ||
+ | * **Tuple**: '' | ||
+ | * **Map**: ''# | ||
+ | * **List**: '' | ||
+ | * **String**: 双引号扩起来的字符串,本质上算 List; 两个字串会被自动连接,比如''" | ||
+ | * **Record**: 类似 C 语言的 struct; | ||
+ | * **true**, | ||
+ | * **类型转换**:'' | ||
+ | * 了解基本语法和主要语言构造,数学运算符 | ||
+ | * **模式匹配**:erlang 的等号'' | ||
+ | * 了解数组和其他集合类的使用 | ||
+ | * 了解字符串的处理 | ||
+ | * 了解该语言在面向对象, | ||
+ | * 了解特有的语法糖 | ||
+ | * 了解该语言错误处理, | ||
+ | * 了解该语言的内存分配机制或GC, | ||
+ | * 了解该语言的编译/ | ||
+ | |||
+ | |||