次のようなグルーヴィーなコード スニペットを見つけました。
def f1 = { print "Hello, ${it}" }
def f2 = { "world" }
(f2 >> f1)()
このような構造はクロージャー間でのみ機能するようです。このコードは、左シフト演算子 ( (f1 << f2)()
) でも機能します。
この演算子 (またはこの手法) はどのように呼び出されるのだろうか?
次のようなグルーヴィーなコード スニペットを見つけました。
def f1 = { print "Hello, ${it}" }
def f2 = { "world" }
(f2 >> f1)()
このような構造はクロージャー間でのみ機能するようです。このコードは、左シフト演算子 ( (f1 << f2)()
) でも機能します。
この演算子 (またはこの手法) はどのように呼び出されるのだろうか?
クロージャー構成を行います。
rightShift
andleftShift
演算子のオーバーロードAPIドキュメントを参照してください。
シフト演算子のオーバーライドは、コレクションにアイテムを追加する場合のように、かなり一般的な手法です。