public:it:erlang

Erlang

  • 了解该语言的出生背景与适用环境
    • 引自wiki:erlang由乔·阿姆斯特朗(Joe Armstrong)在瑞典电信设备制造商爱立信所辖的计算机科学研究室开发。Erlang于1987年发布正式版本,最早是私有软件,经过十年的发展,于1998年发表开放源代码版本。
    • erlang 语言致力于构建大规模可扩展高可用的实时系统。
    • erlang 运行时系统支持高并发,分布式,高容错。
    • OTP 是个 erlang 功能库,并提供插件开发的原则框架。
  • 了解输入输出流,文件流操作
  • 了解程序代码和可执行代码的组织机制,运行时模块加载、符号查找机制
    • 代码由 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» , 具体示例
    • reference : 引用,由 make_ref/0返回;
    • Fun : 函数对象Fun1 = fun (X) → X+1 end. Fun1(2)
    • Port Identifier : erlang port, 由open_port/2返回, 详解
    • 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}., 如果匹配不了则抛异常;
  • 了解数组和其他集合类的使用
  • 了解字符串的处理
  • 了解该语言在面向对象,函数式编程,泛型,元编程等编程范式的特性
  • 了解特有的语法糖
  • 了解该语言错误处理,调试方式以及对测试的支持
  • 了解该语言的内存分配机制或GC,线程,进程等运行时效率相关
  • 了解该语言的编译/解释机制
  • public/it/erlang.txt
  • 最后更改: 2018/02/28 13:48
  • 127.0.0.1