scala中的字符串比較問題
scala中的String比較==和equals是一樣的,為什么?這段代碼如果在java中輸出false,但是在scala中就是true
val s = "a"
? ? val s1 = s + "b"
? ? val s2 : String = "ab"
print(s1 == s2)
scala中的String比較==和equals是一樣的,為什么?這段代碼如果在java中輸出false,但是在scala中就是true
val s = "a"
? ? val s1 = s + "b"
? ? val s2 : String = "ab"
print(s1 == s2)
2018-04-20
舉報
2018-04-21
可以參考官方API文檔介紹,
== 定義如下
意思是表達式“ x==that”中,如果that為null,則調用 eq, 否則調用equals
eq 定義如下
意思是,eq比較對象的引用是否一致。
equals定義如下
equals 比較類型且值為一致
你的 s1 和 s2 值一致且非空, 使用 == 和 equals 得到一致答案, 使用eq比對引用則是false