![](/img/trans.png)
[英]Using xquery FLWOR expressions to find multiple “where” restrictions
[英]Does XQuery have exit statement for FLWOR expressions
我想知道xquery FLWOR表達式是否有一個像continue和break這樣的退出語句?
例如,我想在達到特定條件時退出for循環。
我想知道xquery FLWOR表達式是否有一個像continue和break這樣的退出語句?
例如,我想在達到特定條件時退出for循環。
XQuery是一種函數式語言,在許多其他事物中,這意味着沒有嚴格的執行順序概念。 因此,任何在事情發生時做某事的嘗試都沒有意義。
如果滿足特定條件,正確的方法是做某事。
除了使用error()
函數之外,無法退出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=上試試這個例子。
雖然問題已經很久了,但我正在回答這個問題,因為一些新人可能會遇到這樣的情況,並會得到更好的解決方案。
該解決方案可在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
()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.