在前面的介紹中,我們寫的程式都是用defmodule,
也有使用了IO這個系統模組,來作輸出.
我們來看一下模組的 Import
defmodule M1023a do
import IO
def testfunc do
puts "Calling imported function"
end
end
編譯及執行:
iex(1)> c "M1023a.ex"
[M1023a]
iex(2)> M1023a.testfunc()
Calling imported function
:ok
import以後,引用時,就可以直接使用函數名稱.
不需要再使用 Module.Func 這樣的方式了.
有些模組名稱較長,我們可以取Alias,以方便程式碼撰寫.
假設有個模組名稱叫 Rocket.Engine 我們想簡化為 RcktEng
可以這樣寫
alias Rocket.Engine, as: RcktEng
接著來探討型態,程式語言會提供內建的資料型態,例如數字,List等.
我們來看Elixir的資料型態.進入Elixir Shell
數字:
iex(1)> 6
6
iex(2)> 0xFF
255
iex(3)> 3.14
3.14
iex(4)> 1.0e-3
0.001
iex(1)>是 integer,整數;iex(2)> 也是integer,用16進位表示法;
iex(3)>是 float,浮點數;iex(4)> 也是float,使用指數表示法.
Atom 原子:
iex(5)> :an_atom
:an_atom
在Erlang與Elixir都是拿Atom來做Boolean
使用上為了方便,可以省略前面代表Atom的 :
iex(6)> true == true
true
iex(7)> true == :true
true
iex(8)> :false == false
true
Boolean運算
iex(9)> true and false
false
iex(10)> false or true
true
Tuple:
iex(11)> person = {"Miku", 25}
{"Miku", 25}
取出tuple裡的元素.
iex(12)> age = elem(person, 1)
25
iex(13)> name = elem(person, 0)
"Miku"
置換的方法
iex(14)> put_elem(person, 1, 24)
{"Miku", 24}
tuple裡的元素是不能變動的.當我們使用 put_elem,
其實是建立一個新的.
先來看一下 person的內容.
iex(15)> person
{"Miku", 25}
還是沒變,所以要改變 person,只能讓person 重新繫結(rebound).
iex(16)> person = put_elem(person, 1, 24)
{"Miku", 24}
今天先介紹到此,明天繼續介紹List.