请看一下这个简单的代码:
String.metaClass {
getA = {delegate <<= delegate}
}
assert 'a'.a == 'a'.a
Result: Assertion failed: assert 'a'.a == 'a'.a | | | | false aa aa
为什么结果是FALSE?
我在 Windows 7 SP1 上的 Groovy 2.4.7 工作
请看一下这个简单的代码:
String.metaClass {
getA = {delegate <<= delegate}
}
assert 'a'.a == 'a'.a
Result: Assertion failed: assert 'a'.a == 'a'.a | | | | false aa aa
为什么结果是FALSE?
我在 Windows 7 SP1 上的 Groovy 2.4.7 工作
在 Groovy 中对字符串的 LeftShift 生成一个StringBuffer
( docs )
'a'.a == 'a'.a
尝试在两个 StringBuffers 上做 equals 也是如此。
你不能这样做,StringBuffer
因为equals
方法没有重载,只是检查它们是否是同一个实例