簡體   English   中英

Elixir中==和===有什么區別?

[英]What is the difference between == and === in Elixir?

我從Elixir開始。 我讀到Elixir具有弱等於==和嚴格等於===運算符。

來自JavaScript背景, ==感覺像是一個大錯誤。 Elixir有什么不同嗎? 缺少什么嗎? 我應該何時在Elixir中分別使用弱運算符和強運算符?

到目前為止,我知道,在JavaScript中"1" == 1產生true而在Elixir中則產生false 這意味着至少保留類型信息。 如果是這樣,那么弱平等的用途是什么?

根據官方文件

=====之間的區別在於,在比較整數和浮點數時,后者更加嚴格:

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

否則,它們幾乎是相同的:

→ iex
Erlang/OTP 21 [erts-10.0] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads:1] [hipe]

Interactive Elixir (1.6.6) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> "bro" == "bro"
true
iex(2)> "bro" ===  "bro"
true
iex(3)> 1 == 1
true
iex(4)> 1.0 == 1.0
true
iex(5)> 1 == 1.0
true
iex(6)> 1 === 1.0
false

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM