グルーヴィーなチュートリアルで、次のコードが見つかりました。
class DateTagLib {
def thisYear = {
out << Calendar.getInstance().get(Calendar.YEAR)
}
}
<<
の意味がわからないので、Googleでうまくいきません。
編集:<<
がビットシフトになることがあることがわかりました。しかし、これはどういう意味ですか?
Groovyでは、ビットごとの演算子は、クラスで定義されたleftShift (<<)
およびrightShift (>>)
メソッドでオーバーライドできます。文字列、バッファ、ストリーム、配列などにアクションを追加するためにleftShift
メソッドを使用するのは慣用的なグルーヴィーであり、これがここに表示されているものです。
例えば:
leftShift
、またはOutputStream
を追加するために使用される InputStream
のオーバーロードされたObject
メソッド。List
、これも追加として使用しますあなたはgrailsタグlibを見ているので、outはレンダリングされているページを表しています。このtaglibの結果は、クライアントにレンダリングされる出力バッファーに追加されます。
outがSystem.outであると想定すると、この場合、<<演算子はoutに書き込みます。 <<(出力(ストリームへの書き込み)の場合)および>>(入力(ストリームからの読み取り)の場合)をオーバーロードするイディオムは、C++から来ています。 stdioライブラリ(istream ostreamなど)が定義されると、出力と入力に左シフトと右シフトを使用するというアイデアが生まれました。