【问题标题】:Unexpected results with OCaml !=OCaml 的意外结果!=
【发布时间】:2010-06-16 16:20:04
【问题描述】:

据我所知,= 和 != 应该适用于 OCaml 中的字符串。我看到了奇怪的结果,但我想更好地理解。

当我用 = 比较两个字符串时,我得到了我期望的结果:

# "steve" = "steve";;
- : bool = true
# "steve" = "rowe";;
- : bool = false

但是当我尝试时!= 我没有:

# "steve" != "rowe";;
- : bool = true
# "steve" != "steve";; (* unexpected - shouldn't this be false? *)
- : bool = true

谁能解释一下?有没有更好的方法来做到这一点?

【问题讨论】:

    标签: ocaml equality


    【解决方案1】:

    != 不是= 的否定。 <> 是您应该使用的 = 的否定:

    # "steve" <> "rowe" ;;
    - : bool = true
    # "steve" <> "steve" ;;
    - : bool = false
    # 
    

    != 是== 的否定,如果你是 OCaml 初学者,你不应该使用这两个中的任何一个。它们可能有点棘手,而且官方未对它们进行详细说明(唯一的保证是,如果两个值是 ==,它们就是 =)。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-15
    • 2012-04-02
    • 2019-05-14
    • 2017-07-11
    • 2011-04-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多