
- Elixir 教程
- Elixir - 首頁
- Elixir - 概述
- Elixir - 環境
- Elixir - 基本語法
- Elixir - 資料型別
- Elixir - 變數
- Elixir - 運算子
- Elixir - 模式匹配
- Elixir - 決策
- Elixir - 字串
- Elixir - 字元列表
- Elixir - 列表和元組
- Elixir - 關鍵字列表
- Elixir - 對映
- Elixir - 模組
- Elixir - 別名
- Elixir - 函式
- Elixir - 遞迴
- Elixir - 迴圈
- Elixir - 可列舉
- Elixir - 流
- Elixir - 結構體
- Elixir - 協議
- Elixir - 檔案 I/O
- Elixir - 程序
- Elixir - 符號
- Elixir - 列表推導式
- Elixir - 型別宣告
- Elixir - 行為
- Elixir - 錯誤處理
- Elixir - 宏
- Elixir - 庫
- Elixir 有用資源
- Elixir - 快速指南
- Elixir - 有用資源
- Elixir - 討論
Elixir - 資料型別
使用任何語言都需要了解該語言支援的基本資料型別。本章將討論Elixir語言支援的7種基本資料型別:整數、浮點數、布林值、原子、字串、列表和元組。
數值型別
Elixir,像任何其他程式語言一樣,同時支援整數和浮點數。如果您開啟您的Elixir shell 並輸入任何整數或浮點數作為輸入,它將返回其值。例如:
42
執行上述程式時,會產生以下結果:
42
您還可以使用八進位制、十六進位制和二進位制基數定義數字。
八進位制
要以八進位制基數定義數字,請在其前面加上 '0o'。例如,八進位制的 0o52 等於十進位制的 42。
十六進位制
要以十進位制基數定義數字,請在其前面加上 '0x'。例如,十六進位制的 0xF1 等於十進位制的 241。
二進位制
要以二進位制基數定義數字,請在其前面加上 '0b'。例如,二進位制的 0b1101 等於十進位制的 13。
Elixir 支援 64 位雙精度浮點數。它們也可以使用指數樣式定義。例如,10145230000 可以寫成 1.014523e10。
原子
原子的名稱就是其值。它們可以使用冒號 (:) 符號建立。例如:
:hello
布林值
Elixir 支援 true 和 false 作為布林值。這兩個值實際上分別附加到原子 :true 和 :false。
字串
Elixir 中的字串用雙引號括起來,並使用 UTF-8 編碼。它們可以跨越多行幷包含插值。要定義字串,只需用雙引號括起來即可:
"Hello world"
要定義多行字串,我們使用類似於 python 的語法,使用三個雙引號:
""" Hello World! """
我們將在字串章節中深入學習字串、二進位制和字元列表(類似於字串)。
二進位制
二進位制是用 << >> 括起來的位元組序列,用逗號分隔。例如:
<< 65, 68, 75>>
二進位制主要用於處理位和位元組相關的資料(如有)。預設情況下,它們可以在每個值中儲存 0 到 255。可以使用 size 函式增加此大小限制,該函式指示儲存該值應占用多少位。例如:
<<65, 255, 289::size(15)>>
列表
Elixir 使用方括號指定值列表。值可以是任何型別。例如:
[1, "Hello", :an_atom, true]
列表帶有內建的列表頭和列表尾函式,名為 hd 和 tl,它們分別返回列表的頭和尾。有時,當您建立一個列表時,它將返回一個字元列表。這是因為當 Elixir 看到一個可列印的 ASCII 字元列表時,它會將其列印為字元列表。請注意,字串和字元列表並不相等。我們將在後面的章節中進一步討論列表。
元組
Elixir 使用花括號定義元組。與列表一樣,元組可以容納任何值。
{ 1, "Hello", :an_atom, true
這裡出現一個問題:當兩者都以相同的方式工作時,為什麼要同時提供列表和元組?它們有不同的實現。
列表實際上儲存為連結串列,因此在列表中插入和刪除速度非常快。
另一方面,元組儲存在連續的記憶體塊中,這使得訪問它們的速度更快,但在插入和刪除時會增加額外的成本。