代码之家  ›  专栏  ›  技术社区  ›  Harshal Patil

长生不老药中的==和==有什么区别?

  •  1
  • Harshal Patil  · 技术社区  · 7 年前

    我从长生不老药开始。我听说长生不老药不平等 == 以及严格的平等 === 操作员。

    来自javascript背景, = 感觉像个大错误。灵丹妙药有什么不同吗?错过什么了吗?我应该在什么时候分别使用弱运算符和强运算符?

    到目前为止,我知道,在javascript中 "1" == 1 产量 true 在长生不老药中,它能产生 false . 这意味着至少要保留类型信息。如果是这样,那么弱平等有什么用呢?

    1 回复  |  直到 7 年前
        1
  •  6
  •   Zoltán    7 年前

    根据 official documentation :

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

    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