XQuery:为什么"()=()"和"()eq()"的计算结果都为False? [英] XQuery: How come both "() = ()" and "() eq ()" evaluate to false?

查看:19
本文介绍了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?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆