public:it:erlang

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

两侧同时换到之前的修订记录 前一修订版
后一修订版
前一修订版
public:it:erlang [2016/10/20 09:26] – [学习新语言的一般步骤] oakfirepublic:it:erlang [2018/02/28 13:48] (当前版本) – 外部编辑 127.0.0.1
行 14: 行 14:
     * OTP 是个 erlang 功能库,并提供插件开发的原则框架。     * OTP 是个 erlang 功能库,并提供插件开发的原则框架。
   * 了解输入输出流,文件流操作   * 了解输入输出流,文件流操作
 +    * 流操作 [[http://erlang.org/doc/man/io.html|io module]]. ''io:fwrite''
 +    * 文件操作 [[http://erlang.org/doc/man/file.html|file module]].''read_file'' 
   * 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制   * 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制
-  * 了解该语言的基本数据类型,基本语法和主要语言构造,主要数学运算符和输入输出函数使用+    * 代码由 **modules** 构成,一个 module 由 属性 于 函数构成,以''.''号分割, (似乎在单个文件)。 
 +    * module 可包含很多 预定义属性,具体见教程; 
 +    * 只有单行注释符号''%''; 
 +  * 了解该语言的基本数据类型 
 +    * **integers, floats**: 除传统数值表示有两种 erlang 独特的表示方法: 
 +      * $char : 表示 char 的ascii码或 unicode 码数值; 
 +      * base#value : base 为进制(2~36),比如 2#1101, 8#15, 16#d 为相同数值; 
 +    * **Atom** : 表示字符数字组成的名称常量,如果有空格,@等特殊字符或非小写字母开头,则要使用单引号扩起来,如 ''phone_number,'Month','phone number' ''; 
 +    * **bit strings** : 用来表示还没区分类型的内存存储数值(有点像 nodejs 的 Buffer): ''<<10,20>>'' , [[http://erlang.org/doc/programming_examples/bit_syntax.html|具体示例]] 
 +    * **reference** : 引用,由 ''make_ref/0''返回; 
 +    * **Fun** : 函数对象''Fun1 = fun (X) -> X+1 end.'' ''Fun1(2)''; 
 +    * **Port Identifier** : erlang port, 由''open_port/2''返回, [[http://erlang.org/doc/reference_manual/ports.html|详解]] 
 +    * **pid** : erlang process(不同于一般进程的概念)的标识,由''spawn/1,2,3,4'' ''spawn_link/1,2,3,4'' ''spawn_opt/4''返回 
 +    * **Tuple**: ''P = {Term1,...,TermN}'', ''element(i,P)'', ''P2 = setelement(i,P,value)'', ''tuple_size(P)''; 
 +    * **Map**: ''#{Key1=>Value1,...,KeyN=>ValueN}'',''maps:get(key,map)'',''map2 = maps:update(key,map)'', ''map_size(map)'' 
 +    * **List**: ''[Term1,...,TermN]'', ''[head|tail]'' 
 +    * **String**: 双引号扩起来的字符串,本质上算 List; 两个字串会被自动连接,比如''"hello""world"''等价于''"helloworld"'' 
 +    * **Record**: 类似 C 语言的 struct; 
 +    * **true**,**false**: 来表示 boolean 
 +    * **类型转换**:''atom_to_list'',''list_to_atom'',''tuple_to_list'',''list_to_tuple''等等。 
 +  * 了解基本语法和主要语言构造,数学运算符 
 +    * **模式匹配**:erlang 等号''=''是表示模式匹配,而不是单纯的赋值:''{X, Y} = {1, 2}.'', 如果匹配不了则抛异常;
   * 了解数组和其他集合类的使用   * 了解数组和其他集合类的使用
   * 了解字符串的处理   * 了解字符串的处理
行 22: 行 45:
   * 了解该语言错误处理,调试方式以及对测试的支持   * 了解该语言错误处理,调试方式以及对测试的支持
   * 了解该语言的内存分配机制或GC,线程,进程等运行时效率相关   * 了解该语言的内存分配机制或GC,线程,进程等运行时效率相关
-  * 了解该语言的编译/解释机制 ====+  * 了解该语言的编译/解释机制 
  
  
  
  • public/it/erlang.1476926817.txt.gz
  • 最后更改: 2016/10/20 09:26
  • oakfire