Elixir 基本操作符

2023-12-14 16:27 更新

在上一個(gè)章節(jié),我們看到Elixir提供了,,,算數(shù)操作符,還有函數(shù)和用于獲得整數(shù)形式的商和余數(shù)。?+??-??*??/??div/2??rem/2?

Elixir也提供了對(duì)列表的和操作:?++??--?

iex> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]
iex> [1, 2, 3] -- [2]
[1, 3]

字符串連接符是:?<>?

iex> "foo" <> "bar"
"foobar"

Elixir也提供了三個(gè)布爾操作符:,和。這些操作符要求以布爾類型作為其弟一個(gè)參數(shù):?or??and??not?

iex> true and true
true
iex> false or is_atom(:example)
true

若第一個(gè)參數(shù)不是布爾類型則會(huì)拋出異常:

iex> 1 and true
** (ArgumentError) argument error: 1

or和是短路運(yùn)算符。它們?cè)谧筮叢蛔銐虼_定結(jié)果時(shí)才會(huì)執(zhí)行右邊:?and?

iex> false and raise("This error will never be raised")
false

iex> true or raise("This error will never be raised")
true
注意:如果你是一名Erlang開(kāi)發(fā)者,Elixir中的和對(duì)應(yīng)著Erlang中的和運(yùn)算符。?and??or??andalso??orelse?

除此之外,Elixir也提供,和操作符,它們接受任何形式的參數(shù)。在這些操作符中,除了和之外的值都會(huì)被認(rèn)定為真:?||??&&??!??false??nil?

# or
iex> 1 || true
1
iex> false || 11
11

# and
iex> nil && 13
nil
iex> true && 17
17

# !
iex> !true
false
iex> !1
false
iex> !nil
true

推薦的做法是,當(dāng)你期望布爾型時(shí)使用,和。如果參數(shù)不是布爾型,那么使用,和。?and??or??not??||??&&??!?

Elixir也提供了,,,,,,和作為比較運(yùn)算符:?==??!=??===??!==??<=??>=??<??>?

iex> 1 == 1
true
iex> 1 != 2
true
iex> 1 < 2
true

?==?與的區(qū)別在于后者對(duì)于整數(shù)和浮點(diǎn)數(shù)的比較更加嚴(yán)格:?===?

iex> 1 == 1.0
true
iex> 1 === 1.0
false

在Elixir中,我們可以比較不同的數(shù)據(jù)類型:

iex> 1 < :atom
true

這是處于實(shí)用角度考慮。排序算法不用再擔(dān)心不同的數(shù)據(jù)類型。排序定義如下:

number < atom < reference < functions < port < pid < tuple < maps < list < bitstring

你不必記住這個(gè)順序,但需要知道它的存在。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)