iT邦幫忙

DAY 2
3

蠻可愛的 Erlang 與 Elixir系列 第 2

erlang 快速導覽之一

先來看看最基本的"變數賦值".
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做一個初步的介紹.


上一篇
讓我們進入一個神奇的旅程
下一篇
erlang 快速導覽之二
系列文
蠻可愛的 Erlang 與 Elixir30

1 則留言

我要留言

立即登入留言