本文介绍了XQuery:为什么";()=()";和";()eq()";的计算结果都为False?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
以下XQuery代码片段:
let $x := ()
return if (not($x eq $x) and not($x = $x))
then "wat"
else "makes sense"
返回wat
。为什么?空序列Effective Boolean Value应该是false
,但和都计算为true
…
推荐答案
参见https://www.w3.org/TR/xquery-31/#id-comparisons对于eq
这样的值比较运算符,它说:"如果原子化的操作数是空序列,则值比较的结果是空序列"。因此() eq ()
计算为()
,然后not(())
计算为true()
。
这篇关于XQuery:为什么";()=()";和";()eq()";的计算结果都为False?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!