基本语法:打开erl shell后,以小数点结尾作为一条指令的结束。
基本类型:https://www.cnblogs.com/huangxiaoyi/p/5654169.html
一、基础运算
括号里的都是自己的注释。
四则运算
+ - * /
整除
div
求余数
rem (相当于java、c里的%)
比较
> (大于) < (小于) >= (大于等于) =< (小于等于) ==(等于) /=(不等于) =:= (精确的等于)
=/= (精确的不等于)
1 == 1. true
1 =:= 1.0 false
比较运算符大小级别:number < atom < reference < fun < port < pid < tuple < list < bit string
逻辑运算
不带短路运算符:and (&&) or(||) not(!)
带短路运算符:orelse andalso
逻辑返回值:true、false
位逻辑运算
band (&) bor(|) bnot(~) bxor(^)
binary + ( and or not xor)
位移运算
匹配运算符
=
声明进制
#
2#0100 (二进制的100) 8#7126 (八进制的7126) 16#ae86(十六进制的ae86)
二、写第一个helloworld
新建一个helloworld.erl,内容如下
%hello world program
%定义模块,模块名必须与文件名相同,否则无法正常加载,必须在第一行声明.
-module(helloworld).
%导入模块
-import(io,[fwrite/1]).
%斜线用于函数定义其接受的参数数量,0表示无参数传递
-export([start/0]).
start()->
fwrite("Hello,world2!\n").
打开erl,输入一行换一行。
c(helloworld).
helloworld:start().
三、变量
变量全部以大写字母或者下划线开头,这个不是代码参考建议,而是erlang规则,学习之前就听说erlang里变量都是不可变的,就当常量吧。
X = 123. (V)
_ = 123. (V)
x = 123. (X)
四、元祖
{}
五、列表
[ ]
例: 想扩充列表就可使用 构造器 来扩充,如下格式。
[ 1 | [ ]].
返回[1]
[8,9|[1|[1]]].
返回[8,9,1,1]
[8|9].
返回[8|9]
[A|B]=[1,1].
返回[1,1]
[A|B]=[1|1].
报错,因为刚才绑定的数据[1,1]和现在传入的数据[1|1]不一样。
[A|B] = [1|[1]].
返回[1,1]
[C|D] = [1|1].
返回[1|1].
[E|F] = [1|1,1].
语法错误