先來看看最基本的"變數賦值".
erlang的變數,要大寫開頭,述句結束要用句點 "." 來代表結束,
然後erlang shell會進行評估.
例如:
1> X=456.
456
2> X * 2.
912
上面的1> 2> 代表我們輸入指令的流水號,下面回應是erlang shell評估後的結果.
接著我們試試看讓X等於別的值.
他出現錯誤訊息了!!
** exception error: no match of right hand side value 789
無法與右邊的值匹配!!
先不管上面的訊息是否能理解.
結果就是這個變數是不能被改變的!!
這時候我想大家的表情會不會是
是的!! erlang的變數不能改變!!
先記得這件事情就好.
我們繼續旅程.
再來看看,那改用小寫的呢.
4> simon = yuda.
** exception error: no match of right hand side value yuda
5> simon = 123.
** exception error: no match of right hand side value 123
一樣也是錯誤!
因為 simon 跟 yuda,都不是變數,都是"原子".
大家會不會像唐牛一樣呢.
原子,這到底是物理還是資訊啊,是不是走錯地方啦.
先深呼吸一下.
我們來個正常一點的 hello world吧.
程式碼如下:
-module(hello).
-export([start/0]).
start() ->
io:format("Hello world~n").
module()裡面放hello,代表這模組取名為hello
export()裡面要放可以被呼叫函數的list,函數名稱後面的/0,代表不用傳遞參數進去.
start() 代表函數的名稱, -> 代表函數的內容開始了.
io代表呼叫io模組,format函數,代表格式化輸出.
~n 相當於一般常見的/n ,換行.
最後記得要有 .
存檔為 hello.erl
進入erlang shell,
過程如下圖:
使用c(hello).
來編譯,shell 會去找目錄下是否有hello.erl,找到就進行編譯,
編譯成功後會回覆 {ok, hello}, 這裡的ok就是原子,後續我們還會時常
見到.
接著呼叫hello模組裡的start()函數.依照設計,輸出了Hellow world,然後換行.
最後shell回應ok,代表執行完成.
今天先把erlang做一個初步的介紹.