Erlang的备忘技巧

一、and or 和andalso orelse的区别函数

and和or会计算两边的表达式,而andalso和orelse的求值采用短路机制,好比exp1 andalso exp2,当exp1返回false以后,就不会去求值 
exp2,而是直接返回false,而exp1 and exp2会对exp1和exp2都进行求值,or与orelse也相似。spa

二、在Erlang中小于等因而用=<表示,而不是通常语言中的<=语法,一样,不等于都是用/号,而不是!,好比/=、=/=。code

三、Erlang的保留字有:orm

after and andalso band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse query receive rem try when xorrem

基本都是些用于逻辑运算、位运算以及特殊表达式的符号字符串

四、模块的预约义属性: 
-module(Module).    声明模块名称,必须与文件名相同 
-export(Functions).   指定向外界导出的函数列表 
-import(Module,Functions).   引入函数,引入的函数能够被看成本地定义的函数使用 
-compile(Options).     设置编译选项,好比export_all 
-vsn(Vsn).         模块版本,设置了此项,能够经过beam_lib:version/1 获取此项信息 
能够经过-include和-include_lib来包含文件,二者的区别是include-lib不能经过绝对路径查找文件,而是在你当前Erlang的lib目录进行查找。it

五、宏,定义常量或者函数等等,语法以下: 
-define(Const, Replacement). -define(Func(Var1,...,VarN), Replacement). 
使用的时候在宏名前加个问号?,好比?Const,Replacement将插入宏出现的位置。系统预约义了一些宏: 
?MODULE 表示当前模块名 
?MODULE_STRING 同上,可是以字符串形式 
?FILE 当前模块的文件名 
?LINE 调用的当前代码行数 
?MACHINE 机器名 
Erlang的宏与C语言的宏很类似,一样有宏指示符,包括:io

  • -undef(Macro).编译

  • 取消宏定义import

  • -ifdef(Macro).

  • 当宏Macro有定义的时候,执行如下代码

  • -ifndef(Macro).

  • 同上,反之

  • -else.

  • 接在ifdef或者ifndef以后,表示不知足前者条件时执行如下代码 

  • -endif.

  • if终止符

假设宏-define(Square(X),X*X).用于计算平方,那么??X将返回X表达式的字符串形式,相似C语言中#arg

相关文章
相关标签/搜索