2010-09-04 108 views
25

在常规教程中,我遇到了下面的代码:在这种情况下,groovy << operator是什么意思?

class DateTagLib { 
    def thisYear = { 
    out << Calendar.getInstance().get(Calendar.YEAR) 
    } 
} 

我不知道<<手段是什么,以及我在与谷歌没有运气。

编辑:我现在知道<<有时候会有点变化。但这里是什么意思?

+0

在我的整个生活中没有看到过一行Groovy,它看起来像'out << foo'可能是'return foo'的语法。或者out是某种具有时髦重载的对象,导致同样的事情,即'out'对象上的'<<'操作符只是返回它的参数值... – 2010-09-04 07:34:49

+0

看起来像'<< ='会是这里更合适,但我也不太了解它。 – djangofan 2013-01-16 00:55:54

回答

46

在常规中,按位运算符可以用该类上定义的leftShift (<<)rightShift (>>)方法覆盖。使用leftShift方法对字符串,缓冲区,流,数组等进行追加操作,这就是惯用的习惯,这就是你在这里看到的。

例如:

  • 重载leftShift方法上OutputStream其用于附加字节,一个InputStreamObject到流。
  • List,也使用它作为一个附加

你正在寻找一个Grails标记库,让出代表真实所呈现的页面。该taglib的结果将被添加到将呈现给客户端的输出缓冲区中。

5

假设的System.out的< <操作者在这种情况下写入到。 为输出(写入流)重载< <以及用于输入(从流中读取)的“C++”来自C++。当stdio库(istream ostream等)被定义时,这个想法就诞生了,使用左移和右移来输出和输入。