OCaml的意外结果=

OCaml的意外结果=,ocaml,equality,Ocaml,Equality,据我所知,=和!=应该在OCaml中处理字符串。我看到了奇怪的结果,但我想更好地理解 当我用=比较两个字符串时,我得到了预期的结果: # "steve" = "steve";; - : bool = true # "steve" = "rowe";; - : bool = false 但当我尝试时!=我没有: # "steve" != "rowe";; - : bool = true # "steve" != "steve";; (* unexpected - shouldn't this b

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

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

# "steve" = "steve";;
- : bool = true
# "steve" = "rowe";;
- : bool = false
但当我尝试时!=我没有:

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

有人能解释一下吗?有更好的方法吗?

=
不是
=
的否定
是您应该使用的对
=
的否定:

# "steve" <> "rowe" ;;
- : bool = true
# "steve" <> "steve" ;;
- : bool = false
# 
史蒂夫·罗;; -:bool=true #“史蒂夫”、“史蒂夫”;; -:bool=false #
=
是对
==
的否定,如果您是OCaml初学者,您不应该使用这两种语言中的任何一种。它们可能有点棘手,而且官方没有对它们进行详细说明(唯一的保证是,如果两个值是
=
,那么它们就是
=
)。

不久前的一个问题涉及到一些微妙之处。