Из того, что я могу сказать, = и! =, как предполагается, работает над строками в 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
#
! =
- это отрицание ==
, и если вы Новичок в OCaml, вам пока не следует использовать ни один из этих двух. Они могут быть немного сложными, и они официально занижены (единственная гарантия состоит в том, что если два значения равны ==
, они равны =
).