scala中的String比较==和equals是一样的,为什么?这段代码如果在java中输出false,但是在scala中就是true
val s = "a"
val s1 = s + "b"
val s2 : String = "ab"
print(s1 == s2)
可以参考官方API文档介绍,
== 定义如下
意思是表达式“ x==that”中,如果that为null,则调用 eq, 否则调用equals
eq 定义如下
意思是,eq比较对象的引用是否一致。
equals定义如下
equals 比较类型且值为一致
你的 s1 和 s2 值一致且非空, 使用 == 和 equals 得到一致答案, 使用eq比对引用则是false