我想知道xquery FLWOR表达式是否有一个退出语句,如continue和break?
例如,我想在达到特定条件时退出for循环。
答案 0 :(得分:7)
我想知道xquery是否FLWOR 表达式有一个退出语句 继续休息?
例如我想退出for 当特定条件时循环 达到。
XQuery是一种功能性语言,在许多其他事物中,这意味着没有严格的执行顺序概念。因此,任何尝试在事件发生时执行特定的尝试都没有意义。
正确的方法是在满足特定条件时执行。
除了使用 error()
功能外,无法退出FLWOR表达式,但这会终止处理。
人们不应该过于担心优化 - 许多处理器都有很好的优化器。
因此,许多处理器将懒惰地进行评估并将停止评估下面的FLOWR表达式,这是第一次产生满足specific-condition()
的结果:
(someFlowerExpression )[specific-condition(.)][1]
答案 1 :(得分:1)
XQuery Scripting有退出声明:
variable $i := 0;
while(true())
{
$i := $i + 1;
if($i = 3) then
exit returning $i
else();
}
或者
for $i in (1 to 1000)
return
if($i = 3) then
exit returning $i;
else();
您可以在http://www.zorba-xquery.com/html/demo#JvSLsVh3ZjhvTHecVd9jyE1vEBc=
上试用此示例答案 2 :(得分:0)
虽然问题已经很久了,但我正在回答这个问题,因为一些新人可能会遇到这样的情况,并会得到更好的解决方案。
此解决方案可在BaseX 7.6上轻松运行
for $i in (1 to 10)
return
if ($i = 3) then
$i
else
exit
输出将为 - 3
或者这将生成输出-3,
for $i in (1 to 10)
return
if ($i = 3) then
$i
else
()