iT邦幫忙

DAY 23
1

蠻可愛的 Erlang 與 Elixir系列 第 23

Elixir 關於模組與資料型態

  • 分享至 

  • xImage
  •  

在前面的介紹中,我們寫的程式都是用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.


上一篇
Elixir的函數以及模式比對
下一篇
Elixir 的 List
系列文
蠻可愛的 Erlang 與 Elixir30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言