回答
我想知道,如果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