W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
在上一個(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è)順序,但需要知道它的存在。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: