五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

Kotlin學習之==、equals、===三者的區(qū)別與聯(lián)系

2023-02-05 18:16 作者:楓葉Joshua  | 我要投稿

背景

????????在代碼中,我們經(jīng)常需要判斷兩個變量是否相等,這里相等一般有兩種含義,一種是判斷兩者是否指向同一個對象引用,另一種是判斷兩者屬性是否相同。

????????學過Java的同學應該知道,在Java中判斷是否指向同一個引用使用的是 ==,而判斷屬性是否相同,需要通過equals()方法來比較,并且此時就需要重寫equals()方法(一般需要同時重寫hashCod()e方法)。

????????但是在Kotlin中==的底層也是調用equals()方法,因此兩者是等價的。=== 又是什么?

測試

Kotlin中==的底層也是調用equals()方法,可以通過以下代碼來驗證。

????????根據(jù)以上代碼的驗證結果可知,重寫equals方法后,兩個不同對象(屬性相同),使用 == 運算,結果也為 true,因此 == 和 equals() 是等價的。

????????那么在Kotlin中難道就沒有明確比較兩個變量所指向的對象引用是否相同的方式了嗎?答案是有的,就是使用 === ,通過以下代碼可以驗證。

結論????????

????????至此,==、equals()和===三者的關系就已經(jīng)搞清楚了。

  1. Kotlin中,== 和 equals()等價,== 的底層實際就是調用的equals(),默認是比較的兩個變量所指向的對象引用是否相同,可以通過重寫equals()方法(同時重寫hashCode()方法),修改為比較屬性值。

  2. === 用于檢查兩個變量是否引用相同的底層對象,無論對象是什么類型。

????????如果有哪里沒講明白或講的不對的地方,還請各位大佬評論區(qū)告訴我,一起交流學習。

????????下期預告:從本期內容可知,如果比較對象時,我們想要比較的是屬性值是否相同,而不是對象的引用是否相同,此時我們就需要重寫equals()方法(同時重寫hashcode()方法)。在Java中我們只能這么做,但在Kotlin中,它為我們提供了更加簡便的實現(xiàn)方式,那就是使用data修飾類,使其作為數(shù)據(jù)類,具體使用方式見下一期(點個關注,更新提醒,哈哈)。

Kotlin學習之==、equals、===三者的區(qū)別與聯(lián)系的評論 (共 條)

分享到微博請遵守國家法律
云林县| 鄢陵县| 安新县| 日土县| 长寿区| 营山县| 白朗县| 宁夏| 海丰县| 文安县| 巴东县| 保德县| 那坡县| 维西| 阳朔县| 凯里市| 柳州市| 溧水县| 柯坪县| 图木舒克市| 山东省| 沾益县| 五莲县| 定州市| 克东县| 织金县| 赞皇县| 奉新县| 宜黄县| 香港 | 邹城市| 抚松县| 桂东县| 林芝县| 汕尾市| 阳江市| 武汉市| 泽普县| 德令哈市| 淮阳县| 临海市|