差别
这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
public:it:erlang [2016/10/19 15:04] – [学习新语言的一般步骤] oakfire | public:it:erlang [2018/02/28 13:48] (当前版本) – 外部编辑 127.0.0.1 | ||
---|---|---|---|
行 2: | 行 2: | ||
* Official site: | * Official site: | ||
* [[http:// | * [[http:// | ||
+ | ===== Books ===== | ||
+ | * [[http:// | ||
+ | |||
===== 学习新语言的一般步骤 ===== | ===== 学习新语言的一般步骤 ===== | ||
行 9: | 行 12: | ||
* erlang 语言致力于构建大规模可扩展高可用的实时系统。 | * erlang 语言致力于构建大规模可扩展高可用的实时系统。 | ||
* erlang 运行时系统支持高并发,分布式,高容错。 | * erlang 运行时系统支持高并发,分布式,高容错。 | ||
- | * OTP 是个 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 | ||
* 了解数组和其他集合类的使用 | * 了解数组和其他集合类的使用 | ||
* 了解字符串的处理 | * 了解字符串的处理 | ||
行 19: | 行 45: | ||
* 了解该语言错误处理, | * 了解该语言错误处理, | ||
* 了解该语言的内存分配机制或GC, | * 了解该语言的内存分配机制或GC, | ||
- | * 了解该语言的编译/ | + | * 了解该语言的编译/ |