我开始用grails工作 关于使用这个<<<<<<<< (按位左移)运算符。
我认为它用于分配一些值/对象,如
assignedTo<< assignedValue
def outputBook = {
output << Book.read(1)
}
这是明确的概念吗? 谢谢你提前。
答案 0 :(得分:1)
从技术上讲,这是一个Groovy而不是Grails运算符,它是加法操作数。我似乎记得它代表了左手的append
方法。因此,对于集合,它会将元素添加到集合中。
例如:
def things = ['one', 'two']
assert things.size() == 2
things << 'three'
assert things.size() == 3
左移&lt;&lt; Java中的运算符仅用于按位运算。但是,Groovy通过将所有操作数委托给方法来覆盖它。这允许您实现自己的。比如以下使用plus:
class Baby {
String name
String toString(){"Baby: ${name}"}
}
class Person {
String name
def plus(Person o) {
return new Baby(name: "${this.name} - ${o.name}")
}
}
def person1 = new Person(name: "Person 1")
def person2 = new Person(name: "Person 2")
assert "Baby: Person 1 - Person 2" == (person1 + person2)
漂亮的Groovy嗯?