4

我发现了一个类似于下一个的 groovy 代码片段:

def f1 = { print "Hello, ${it}" }

def f2 = { "world" }​​​​​​​​

(f2 >> f1)()

看起来这种构造只在闭包之间起作用。此代码也适用于左移运算符 ( (f1 << f2)())。

我想知道这个运算符(或这种技术)是如何调用的?

4

2 回答 2

4

它做闭包组合。

请参阅rightShiftandleftShift 运算符重载 API 文档

覆盖移位运算符是一种非常常见的技术,例如将项目添加到集合中。

于 2012-08-22T16:29:41.403 回答
0

这是官方文档中所有运算符及其名称的不错列表,其中显示了 <<、>>、>>=、..、..<、<<=、>>= 等的名称。每当我在 Groovy 中偶然发现一些我不知道其名称的东西时,这就是我要去的地方(另请参阅同一侧关于运算符优先级的段落)。

于 2015-03-27T11:01:33.967 回答