XQuery:为什么“() = ()”和“() eq ()”的计算结果都为 false?

2023-12-23

以下 XQuery 片段:

let $x := ()
return if (not($x eq $x) and not($x = $x))
    then "wat"
    else "makes sense"

returns wat。为什么?这有效布尔值 https://learn.microsoft.com/en-us/sql/xquery/effective-boolean-value-xquery一个空序列应该是false,但两者都false() eq false() and false() = false()评估为true


See https://www.w3.org/TR/xquery-31/#id-comparisons https://www.w3.org/TR/xquery-31/#id-comparisons对于值比较运算符,例如eq,它说:“如果原子化操作数是空序列,则值比较的结果也是空序列”。所以() eq ()评估为()进而not(()) to true().

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

XQuery:为什么“() = ()”和“() eq ()”的计算结果都为 false? 的相关文章

随机推荐