"有什么作用?-6ren"> "有什么作用?-当我查找 XQuery 示例时,有时会看到使用了运算符 =>。 我试图寻找它的含义,但找不到任何东西。由于我使用的是 MarkLogic,因此它可能仅适用于 MarkLogic,但我对此表示怀疑。 从-6ren">
gpt4 book ai didi

xquery - XQuery 中的运算符 "=>"有什么作用?

转载 作者:行者123 更新时间:2023-12-03 16:11:17 26 4
gpt4 key购买 nike

当我查找 XQuery 示例时,有时会看到使用了运算符 =>

我试图寻找它的含义,但找不到任何东西。由于我使用的是 MarkLogic,因此它可能仅适用于 MarkLogic,但我对此表示怀疑。

从示例中我知道它以某种方式将功能链接在一起,但我想知道发生了什么。

这些是我发现的一些例子:

let $map := map:map()
=>map:with("some-key",<info>45683</info>)
return <result>{$map}</result>
let $employees := op:from-view("main", "employees")
let $expenses := op:from-view("main", "expenses")
let $totalexpenses := op:col("totalexpenses")
return $employees
=> op:join-inner($expenses, op:on(
op:view-col("employees", "EmployeeID"),
op:view-col("expenses", "EmployeeID")))
=> op:group-by(op:view-col("employees", "EmployeeID"),
("FirstName", "LastName",
op:view-col("expenses", "Category"),
op:sum($totalexpenses,
op:view-col("expenses", "Amount"))))
=> op:order-by(op:view-col("employees", "EmployeeID"))
=> op:result()

最佳答案

它是 Arrow Operator ,它允许你从外部为函数调用提供第一个参数。所以如果你有一个函数调用 foo($a, $b, $c) ,你可以等价地写成 $a => foo($b, $c) .如果你有很多嵌套的函数调用作为第一个参数,这很方便:

string-join(reverse(tokenize(upper-case('a;b;c'), ';')), '_')

使用箭头运算符,这可以写成一个很好的管道
'a;b;c' => upper-case() => tokenize(';') => reverse() => string-join('_')

给出相同的结果 "C_B_A" .

箭头运算符的一个缺点是,当您想一目了然地找出 XQuery 代码中的函数调用引用了哪个函数时,必须将其考虑在内。如果你声明了两个函数 local:foo($seq) {...}local:foo($seq, $accum) {...} ,然后 $asdf => local:foo($x)看起来它调用了单参数版本,但实际上调用了双参数变体。

关于xquery - XQuery 中的运算符 "=>"有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61775350/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com