を返す関数があり[[]]
、その結果を単体テストとしてテストしたいと考えています。[[]] == [[]]
しかし、式が returnであることがわかりましたfalse
。ここに簡単なテストコードがあります:
# [[]] == [[]];;
- : bool = false
この式が false と評価される理由を誰か説明してもらえますか?
ありがとう。
を返す関数があり[[]]
、その結果を単体テストとしてテストしたいと考えています。[[]] == [[]]
しかし、式が returnであることがわかりましたfalse
。ここに簡単なテストコードがあります:
# [[]] == [[]];;
- : bool = false
この式が false と評価される理由を誰か説明してもらえますか?
ありがとう。
2 つの値を比較するための構造上の同等性があるため、使用=
します。
# [[]] = [[]];;
- : bool = true
==
is reference equalityであるため、同じメモリ位置を参照する場合にのみ true を返します。
let a = [[]]
let b = a
# b == a;;
- : bool = true
OCamlの==
演算子は「物理的平等」を意味します。ただし、2つの(物理的に)異なるリストがあります。おそらく、によってテストされる「構造的平等」が必要です=
。