安裝
在https://elixir-lang.org 上可以找到安裝說明。
使用 elixir -v 查看 elixir 的版本
更新 elixir 版本
brew upgrade elixir
交互模式
Elixir 自帶了 iex 這樣一個(gè)交互 shell, 可以讓我們隨時(shí)計(jì)算 Elixir表達(dá)式的值。
運(yùn)行 iex

基本類型
- 整數(shù)類型
Elixir 語言本身就支持二進(jìn)制、八進(jìn)制和十六進(jìn)制的整數(shù) - 浮點(diǎn)類型
在 Elixir 語言中,浮點(diǎn)數(shù)要求小數(shù)點(diǎn)之前必須有至少一個(gè)數(shù)字;支持 64 位多精度和e表示的科學(xué)計(jì)數(shù) - 布爾類型
Elixir 支持true和false兩種布爾值,除了false和nil之外所有的值都為真。 - 原子類型
原子類型是名字和代表的值相同的常量
iex> :foo
:foo
iex> :foo == :bar
false
注意:布爾值 true和 false 實(shí)際上就是對(duì)應(yīng)的原子:true和:false
iex> true |> is_atom
true
iex> :true |> is_boolean
true
iex> :true === true
true
Elixir 模塊的名字也是原子,即使實(shí)際上還不存在這個(gè)模塊,MyApp.MyModule也是一個(gè)合法的原子名稱。
iex> is_atom(MyApp.MyModule)
true
Elixir 以大寫字母開始的別名也是原子。
iex> is_atom(JustMyAliasTest)
true
原子也可以用來直接引用 Erlang 標(biāo)準(zhǔn)庫的模塊,包括內(nèi)置的模塊。
iex> :crypto.strong_rand_bytes 3
<<23, 104, 108>>
- 字符串
Elixir 的字符串是 UTF-8 編碼的,用雙引號(hào)包住,字符串支持換行符和轉(zhuǎn)義字符
iex> "foo
...> bar"
"foo\nbar"
iex> "foo\nbar"
"foo\nbar"
基本操作
算術(shù)運(yùn)算
Elixir 支持基本的 +、-、*、/操作符,不過要注意 / 的結(jié)果是浮點(diǎn)數(shù)。
iex> 2 + 2
4
iex> 2 - 1
1
iex> 2 * 5
10
iex> 10 / 5
2.0
Elixir 提供了整數(shù)除法和求余的兩個(gè)方法
iex> div(10, 5)
2
iex> rem(10, 3)
1
注:
余數(shù)的英文 remainder
整數(shù)的英文 devision
布爾運(yùn)算
Elixir 提供了||、&&和!布爾操作符,它們支持任何類型的操作:
iex> -20 || true
-20
iex> false || 42
42
iex> 42 && true
true
iex> 42 && nil
nil
iex> !42
false
iex> !false
true
還有三個(gè)操作符(and、or、not),它們的第一個(gè)參數(shù)必須是布爾類型(true 和 false):
iex> true and 42
42
iex> false or true
true
iex> not false
true
iex> 42 and true
** (ArgumentError) argument error: 42
iex> not 42
** (ArgumentError) argument error
比較
Elixir 有我們習(xí)慣的一切比較運(yùn)算符 :==,!=,===,!==, <=, >=, < 和 >。
對(duì)于整數(shù)和浮點(diǎn)數(shù)的嚴(yán)格比較,可以使用 ===。
Elixir 有一個(gè)很重要的特性,那就是任意兩個(gè)類型之間都可以進(jìn)行比較,這在排序的時(shí)候非常有用。
number < atom < reference < function < port < pid < tuple < map < list < bitstring
字符串插值
iex> name = "Sean"
iex> "Hello #{name}"
"Hello Sean"
字符串拼接
使用 <>操作符進(jìn)行字符串拼接:
iex> name = "Sean"
iex> "Hello " <> name
"Hello Sean"