Ati*_*kae 8 ocaml expression boolean list
我有一个返回的函数,[[]]
我想测试结果作为单元测试.但我发现表达式[[]] == [[]]
返回false
.这是一个简单的测试代码:
# [[]] == [[]];;
- : bool = false
Run Code Online (Sandbox Code Playgroud)
有人可以解释为什么这个表达式被评估为假?
谢谢.
pad*_*pad 13
使用,=
因为您具有结构相等性来比较两个值:
# [[]] = [[]];;
- : bool = true
Run Code Online (Sandbox Code Playgroud)
因为==
是引用相等,所以如果引用相同的内存位置,它只返回true:
let a = [[]]
let b = a
# b == a;;
- : bool = true
Run Code Online (Sandbox Code Playgroud)
==
OCaml中的操作员意味着"物理平等".但是,您有两个(物理上)不同的列表.也许,你想要"结构平等",经过测试=
.