Elixir 在长生不老药中==和===之间有什么区别?

Elixir 在长生不老药中==和===之间有什么区别?,elixir,Elixir,我从长生不老药开始。我读到Elixir有弱等式和严格等式运算符 从JavaScript背景来看,=感觉像是一个大错误。长生不老药有什么不同吗?我错过了什么?什么时候应该在Elixir中分别使用弱运算符和强运算符 到目前为止,我知道,在JavaScript中,“1”==1产生true,而在Elixir中产生false。这意味着至少保留了类型信息。如果是这样,那么弱相等有什么用呢?根据: =和=之间的区别在于后者在比较整数和浮点数时更严格: iex> 1 == 1.0 true iex>

我从长生不老药开始。我读到Elixir有弱等式和严格等式运算符

从JavaScript背景来看,
=
感觉像是一个大错误。长生不老药有什么不同吗?我错过了什么?什么时候应该在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

似乎已经问了一个问题,你可以得到答案可能重复的好,我尝试过搜索这个之前。它只谈论字符串。但可能被认为是重复的,因为两种解释都很好,但上下文不同。你的意思是说它只适用于数字数据类型吗?对于其他类型,弱类型和严格类型的行为相同。@HarshalPatil是的,这就是我所说的,也是链接文档所说的。我衷心建议你读一读。