簡體   English   中英

XQuery是否具有FLWOR表達式的退出語句

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM