Elixir中==和===有什么区别?

Har*_*til 1 elixir

我开始使用Elixir.我读到Elixir具有弱相等==和严格相等===运算符.

来自JavaScript背景,==感觉像是一个大错误.Elixir有什么不同吗?我错过了什么?什么时候我应该在Elixir中分别使用弱强算子?

到目前为止,我知道,在Elixir的JavaScript "1" == 1收益率true中它会产生false.这意味着至少保留了类型信息.如果是这样,那么弱平等的用途是什么?

Zol*_*tán 6

根据官方文件:

==和和之间的区别在于===后者在比较整数和浮点数时更严格:

iex> 1 == 1.0
true
iex> 1 === 1.0
false
Run Code Online (Sandbox Code Playgroud)

否则他们几乎是一样的:

? 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
Run Code Online (Sandbox Code Playgroud)