在groovy中"<<"(双倍小于)的目的是什么

12 groovy

我在一些代码中看到了我无法理解<<的目的,就像在下面的示例代码中一样

def renderFiles(args) {
   def model = []
   args.each { fileArgs ->
      model << createModel(fileArgs.id,fileArgs.path,fileArgs.ext)
   }
   render view:'show', model: [files:model]
}
Run Code Online (Sandbox Code Playgroud)

Opa*_*pal 30

这是一个leftShift运营商.在实现groovy运算符重载时,请参阅此处新文档以供参考.在这种特殊情况下,向列表操作添加元素会被重载.

代替:

model.add(createModel(fileArgs.id,fileArgs.path,fileArgs.ext))

你可以简单地写:

model << createModel(fileArgs.id,fileArgs.path,fileArgs.ext)

这是一种速记.还有覆盖了List类,如其他运营商plus(),minus().看到这里.


Kon*_*hov 7

在 groovy<<运算符中,将右侧的表达式结果添加到左侧的集合中