关于 groovy 中的 + 和 is 运算符的问题
Question about + and the is operator in groovy
为什么这样可以:
assert 'foo'+' bar'.is('foo baz')
?
这失败了,但没关系:
assert 'foo'+' bar' == 'foo baz'
assert 'foo'+'bar'.is('foo baz')
.
在 +
之前评估
所以这个表达式与
相同
assert 'foo'+ ('bar'.is('foo baz'))
assert 'foo'+ false
assert 'foofalse'
平等和身份是两个不同的概念。 is
测试身份,也就是说它测试 2 个引用是否指向同一个对象。 ==
测试相等性,也就是说它测试对象是否彼此“相等”,相等性由 equals
方法定义(有时在某些情况下为 compareTo
方法)。
为什么这样可以:
assert 'foo'+' bar'.is('foo baz')
?
这失败了,但没关系:
assert 'foo'+' bar' == 'foo baz'
assert 'foo'+'bar'.is('foo baz')
.
在 +
所以这个表达式与
相同assert 'foo'+ ('bar'.is('foo baz'))
assert 'foo'+ false
assert 'foofalse'
平等和身份是两个不同的概念。 is
测试身份,也就是说它测试 2 个引用是否指向同一个对象。 ==
测试相等性,也就是说它测试对象是否彼此“相等”,相等性由 equals
方法定义(有时在某些情况下为 compareTo
方法)。