基本語法:打開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].
語法錯誤