Erlang-- 学习笔记1,数据格式

来源:互联网 发布:超市销售记录数据 编辑:程序博客网 时间:2024/06/16 03:08
备注:Erlang-- 学习笔计,知识要点来自于维基百科,一些不容易懂的地方,我给出重新解释,方便自己理解和记忆,如果有错误,请大家不吝指教。
  1. 原子: 原子是基本数据单元,以一般文字构成。构词规则有:
    1. 以小写英文字符开头、不包含空白的连续文字。
    2. 以单引号包含的任意连续文字。
      hello'Hello, World!'truea3b

  2. 数字: 数字是基本数据单元,可以是整数或实数
    1. 连续数字符号
    2. 包含一个小数点的连续数字符号,并不以小数点开头也不以小数点结尾
    3. 符合前二项原则,并以 + 或 - 符号开头
    4. 以#分区的数字,前者将表示进制
      3023.1416+1-216#10

  3. 列表: 列表是与链接串行相同的数据结构。任一列表大致区分为头部与尾部,头部是列表的第一项,尾部是列表除第一项之外的其他部     份
    1. 左边以 [ 、右边以 ] 符号,包含一串以逗号分隔的零或多项构句要素。
    2. 符合前项原则,当存在任一 | 符号时, | 的左边有一串逗号分隔的构句要素, | 的右边只有一个构句要素。
      [][1,2,3][ [1],2|[] ]

  4. 值组: 值组是将二个、三个或多个数据放在一起的数据结构
    1. 左边以 { 、右边以 } 符号,包含一串以逗号分隔的零或多项构句要素。
      {}{{1},2}

  5. 字符: Erlang将字符存为32位的整数
    1. 任何可见的字符,以 $ 开头、后接该字符符号,即表示字符本身
    2. 任何不可见的字符,可使用以 $ 开头、后接该字符符号的逸出串行表达
      $3$)$\012$\x0A$\n

  6. 字符串: Erlang将字符串视同一列整数列表
    1. 以双引号包含任意多个文字,即为字符串。
    2. 以一列整数列表表达,使其中每个整数项目都落在合理的字符的值范围,此列也是字符串。
      "Hello, World!"[65,66,67]

  7. 二进制数据:以左边 << 、右边 >> 符号,包含由比特语法表示的数据
    <<"Hello, World!">><<65:8,66:8,67:8>>

  8. 函数识别项: Erlang容许用文字表示函数识别项,使程序中可以对指定函数做函数调用,或者当做数据传递。
    1. 函数识别项格式为  fun 函数名称/参数数目
      fun a_function/3

  9. 程序代号: Erlang容许以自带函数erlang:spawn/3、erlang:spawn/4、erlang:spawn/1、erlang:spawn/2等等,将指定函数启动为一个程序。程序启动之后,Erlang以左边 < 、右边 > ,包含一个数字和点号组成的编号,表示此程序代号
    > [P|_] = example:ring_proc([func,func,func]).[<0.233.0>,<0.234.0>,<0.232.0>]> P ! stop.Stop process <0.233.0>stopStop process <0.234.0>> Stop process <0.232.0>>

  10. 模块:  
    1.  Erlang容许将一些程序整理为一个模块。模块的设置,是在源码文件开头书写模块标记,格式为
      -module(模組名稱).-export( [ 函數名稱/參數數目 , 函數名稱/參數數目 , ... ] ).-import( 模組名稱, [ 函數名稱/參數數目 , 函數名稱/參數數目 , ... ] ).

    2. 模块名称和函数名称都是原子。 -module(模块名称) 定义模块的名字,要与文件名相同。 -export( ... ) 定义模块发布的函数,模块内的任何函数必须要发布才能让外部通过模块调用该函数。 -import( ... ) 定义本模块要从其他模块导入哪些函数,以便本模块自己使用。另外,为了方便程序的撰写并测试,还容许 -compile(export_all) 定义本模块的所有函数全部对外发布。
      -compile(export_all).

  11. 宏: 宏是将一项数据以另一个文字做为代名
    1. 定义宏的语法是 
      -define ( 代名 , 資料 ).

    2.  使用宏的语法是
      ? 代名

    3.  Erlang有一些内定语法,例如模块名称为
      ?MODULE