回答
我想知道,如果XQuery的FLWOR 表达有像 退出声明中继续突破?
例如,当特定条件达到 时,我想退出为 循环。
XQuery是一种官能语言,这在许多其他事情意味着存在的执行顺序没有严格的概念。因此,任何尝试做某些事情时都会发生某些具体的事情,并不有意义。
正确的做法是做点什么如果满足特定的条件。
除了使用函数外,没有办法退出FLWOR表达式,但会终止处理。
人们不应该过分担心优化 - 许多处理器都有很好的优化器。
因此,许多处理器将延迟计算,将停止以下FLOWR表达的评价,它第一次产生结果满足specific-condition()
:
(someFlowerExpression)[specific-condition(.)][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=
XQuery中没有退出或返回关键字。 – 2014-10-23 21:36:14
'$对于我在(1〜1000) 其中$我下4 回报 $ I ' – 2014-10-23 21:37:11
两个链接都死了:( – 2015-01-27 17:30:02
虽然这个问题还比较陈旧,但我正在回答这个问题,因为有些新人可能会遇到这种情况,并会得到更好的解决方案。
该解决方案将在BaseX轻松运行7.6
for $i in (1 to 10)
return
if ($i = 3) then
$i
else
exit
输出将是 - 3
OR这将产生输出 - 3,
for $i in (1 to 10)
return
if ($i = 3) then
$i
else
()
我没有时间在BaseX试试这个,但理论上这将输出什么,因为第一次通过循环,因为'$ i = 1',它已经退出了。 – 2015-01-27 17:34:42
@Vincent - 我已经更新了答案。第二个与BaseX一起工作,我测试过了。只有3。 – John 2015-01-30 05:00:54
- 1. F#是否有循环退出语句?
- 2. Ceylon中的开关表达式/语句是否有通配符?
- 3. 正则表达式:SQL语句是否包含WHERE子句?
- 4. 带有If语句的SSRS表达式
- 5. XQuery否定正则表达式
- 6. 是否可以使用带有表达式的switch语句作为case?
- 7. 是否有Python语言用于评估短路的函数/表达式列表?
- 8. 是否有多个表达式与具有分号的表达式相同?
- 9. 的Xquery REPLACE语句用于在DB2表中的多个节点
- 10. XQuery的正则表达式
- 11. 是否有可能使用正则表达式测试JPA/EJB QL语句?
- 12. 正则表达式语句
- 13. 野生表达式语句
- 14. while语句和表达式
- 15. 是monads表达式,还是Haskell中有语句?
- 16. XQuery表达式。有关订购
- 17. 用于替换语句中的论题的正则表达式
- 18. 与是否出现语句
- 19. 是否有XQuery IRC?
- 20. 的Xquery使用FLWOR表达式查询
- 21. 的Perl:正则表达式,用于读取日志语句
- 22. 正则表达式的表达式语句模式
- 23. 在XSLT/XQuery正则表达式中,是否有评估交替表达式的必要顺序?
- 24. 是否有用于编写正则表达式的DSL?
- 25. 调用语句调用的等效表达式是什么?
- 26. 在我的表达式中使用和或语句时出错?
- 27. 在使用正则表达式在java中选择具有特定字符的HTML语句中的语句
- 28. 如何编写正则表达式来查看表达式中是否至少有一些语句通过了
- 29. 是否有可能为动态if语句创建表达式树?
- 30. 对XPathEvaluate是否有类似的Linq函数,但对于XQuery表达式而不是XPath?
FLWOR表达式是不是真的环路 - 不能保证“for”元素将按给定的顺序进行评估,甚至不会在单个线程中进行评估;它们都可以并行完成并一次结合在一起,只要保持语义,这将是有效的。 – 2012-05-11 13:46:17