今天開始介紹Elixir.
這是Dave Thomas一次演講的題目.我覺得很生動的形容了Elixir,
就借來當今天正式介紹Elixir的題目.
Elixir是基於Erlang發展的新語言, 1.0版在2014/9/10 正式公佈.
現在有1.0.1版了.今天又剛發行1.0.2版了.
Elixir是靈丹妙藥之意,或是煉金時用的觸媒藥劑,也很形象的形容其意義.
畢竟Erlang雖然強大,但是與一般程式語言有較大差異.透過Elixir引進
Ruby優秀的語法,可以讓大家有Joy of Ruby,又能驅動 Power of Erlang.
Elixir Logo是這樣的:
Elixir要在Erlang R17版本以上執行.
Elixir Shell 叫 iex
進去後,會發覺跟erlang很像,但是一些輸出會有顏色變化,畢竟elixir是比較新
的,所以有作些增進使用者便利的設計.
我們使用Shell來看一下基本的操作,先介紹變數.
iex(1)> salary = 10000
10000
變數使用小寫, 後面無須用 . 結束
簡單的輸出,使用IO.puts(), 來個 Hello World吧
iex(2)> IO.puts("Hello World!")
Hello World!
:ok
輸出了Hello World!
最後會印出 :ok, 與erlang類似,但是Erlang是ok, Elixir是 :ok
:ok 是原子!
脫離Shell跟Erlang一樣是Ctrl-g
寫一個簡單的程式吧.
defmodule Geo do
def area(a, b) do
a * b
end
end
第一行定義模組名稱 Geo, 等一下存檔時要取名為 Geo.ex
第二行是定義函數開頭,第三行是根據傳入參數運算,跟Erlang一樣
不用寫 return那些,第四行是函數定義結束,第五行是模組定義結束.
跟Ruby類似,又不完全相同.
可以用以下方式編譯
iex Geo.ex
會產生Erlang的BEAM檔.接著我們可以在shell裡使用.
iex(1)> Geo.area(3,2)
6
使用 Module.Function 的方式呼叫.
今天先介紹到此.