的输出
<output>{
let $m := 2
let $n := "Hello"
let $s := $m+1
return (
<m>{ $m }</m>,
<n>{ $n }</n>,
<s>{ $s }</s>
)
}</output>
是
<output>
<m>2</m>
<n>Hello</n>
<s>3</s>
</output>
为什么以下查询的输出相同?
<output>{
for $m in 2
for $n in "Hello"
for $s in $m+1
return (
<m>{ $m }</m>,
<n>{ $n }</n>,
<s>{ $s }</s>
)
}</output>
答案 0 :(得分:4)
如果绑定到for
的表达式产生单个结果(例如您的示例),则等同于使用let
。如果返回多个项目,则情况将有所不同:
for
,每个项目将一个一个地绑定到变量。let
,所有项目(即完整的序列)将绑定一次。例如,您将注意到差异。在查询中将2
替换为(1,2,3)
,然后再次运行。