【问题标题】:XQuery: difference between let and forXQuery:let 和 for 之间的区别
【发布时间】:2018-07-21 00:45:58
【问题描述】:

的输出
<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>

【问题讨论】:

    标签: xml xquery


    【解决方案1】:

    如果绑定到for 的表达式产生单个项目作为结果(例如在您的示例中),则相当于使用let。如果它返回多个项目,情况看起来会有所不同:

    • 使用for,每一项都会与变量一一绑定。
    • 使用let,所有项目(即完整的序列)将被绑定一次。

    您会注意到不同之处,例如将查询中的 2 替换为 (1,2,3) 并再次运行。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 1970-01-01
      • 2019-01-11
      • 2011-07-17
      • 1970-01-01
      • 2016-01-06
      • 2021-06-08
      相关资源
      最近更新 更多