我希望在XQuery中创建一个if
没有else
部分的语句.
例如:
{ if (5 = 5) then }
我该怎么做呢?
我也试过这个:
{ if (5 = 5) then else return }
虽然编译,但在运行时不起作用!
没有if
XQuery 中没有语句else
.改为返回空序列()
,或任何合理的标识元素(如果没有定义任何特定的,通常会要求你).
if ($foo eq "bar") then 42 else ()
与过程语言相比,"no else statement"仅仅意味着"什么都不做"XQuery是一种函数式语言,这也意味着每个操作都必须返回"某些东西".如何进行"没有"?它可能已经可以宣布"不else
表态意味着返回空序列,而不是",但W3C XML Query工作组似乎已经决定要求,以明确地界定,而不是返回什么.总而言之,这样可以更容易理解并且可能更好的代码,因为您必须考虑要返回的"其他"值是什么; 因为可能有很多合理的值:0
如果你正在添加某些内容,1
如果相乘,则""
用于连接不带分隔符的字符串的空字符串,如果用分隔符连接字符串则为空序列,...
return
语句"使用"空"返回是不可能的,但是
在当前上下文中返回子元素,因此else return
仅仅是a else ./return
.如果当前上下文确实有
子节点,那么这不仅会失败(并返回某些内容),而且如果没有上下文绑定的话.
返回一个空字符串不会返回任何内容,而是返回空字符串,这是一个值,甚至可能会破坏在另一个地方的输入.返回空字符串不是一般解决方案,但可能在某些特定情况下.