为什么在XQuery查询结束时看到return()
?
e.g。
let $updateIssues:=
for $issue in fn:collection("InProgress_Audit")/ProductIssue
return local:UpdateIssue($issue)
return ()
答案 0 :(得分:2)
你的问题是什么并不完全清楚。鉴于你制定它的方式,可能的答案包括:
也许你的意思是“它为什么存在?”可能的答案包括:
return
子句,let
子句开始的FLWOR表达式不完整。()
) return
关键字可以写成看起来像函数调用。 (作者也可能喜欢欺骗新手和实用的笑话;谨慎行事。)也许你的意思是“这个查询意味着什么,它是什么意思?”可能的答案包括:
updateIssues
的绑定(其值由嵌套的FLWOR表达式给出),然后返回()
(即空序列)。由于return子句中的任何内容都不依赖于updateIssues
的值,因此不需要XQuery引擎来评估用于指定值的表达式(但也不能保证它不会这样做 - 允许处理器在优化方面很聪明,但不要求处理器。)答案 1 :(得分:0)
在您的示例中,return ()
表达式是let
表达式的主体。
$updateIssues
的赋值遍及一堆节点,将值从调用返回到local:UpdateIssue()
,并将这些返回值的序列用作变量值。
但是,然后,该变量没有任何操作,函数只是向调用者返回任何内容。
我担心优化处理器可能会选择丢弃分配,因为分配的变量没有在任何地方使用,但是如果获得更新结果,那么您正在使用的处理器可能不会这样做期待。
所以,最后一行所做的就是在调用时返回一个空序列作为函数的值。
答案 2 :(得分:0)
如果我的问题正确,你会问return ()
。
return ()
意味着你要返回一个空格,所以简单地说你只想将全局变量分配给某个东西,而不想从函数中返回任何东西。
否则,如果您想了解Return表达式的详细信息。它是XQuery FLWOR
表达式的一部分。
作为一种功能语言,XQuery适用于函数。
For Loop,Let Loop,Where,Order By(FLWO)都在内部(在XQuery Engine内部)充当函数。因此,它们都需要在调用后返回以指定需要从它们输出的内容。
如果您需要有关XQuery函数的更多信息,可以参考offical文档。