Elixir-基礎(chǔ)

安裝

https://elixir-lang.org 上可以找到安裝說明。

使用 elixir -v 查看 elixir 的版本

更新 elixir 版本

brew upgrade elixir

交互模式

Elixir 自帶了 iex 這樣一個(gè)交互 shell, 可以讓我們隨時(shí)計(jì)算 Elixir表達(dá)式的值。

運(yùn)行 iex
image

基本類型

  • 整數(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 支持truefalse 兩種布爾值,除了falsenil之外所有的值都為真。
  • 原子類型
    原子類型是名字和代表的值相同的常量
iex> :foo
:foo
iex> :foo == :bar
false

注意:布爾值 truefalse 實(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è)操作符(andor、not),它們的第一個(gè)參數(shù)必須是布爾類型(truefalse):

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"
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容