五月天青色头像情侣网名,国产亚洲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)系的評論 (共 條)

分享到微博請遵守國家法律
交城县| 永城市| 普兰县| 五常市| 泉州市| 黄龙县| 江川县| 梧州市| 阳东县| 湛江市| 贵阳市| 梓潼县| 威海市| 珠海市| 兴安盟| 叶城县| 雷山县| 新建县| 胶南市| 嘉义县| 霍州市| 肇州县| 嵊泗县| 毕节市| 中牟县| 方正县| 孝感市| 阿尔山市| 南漳县| 五台县| 隆安县| 陆川县| 赤峰市| 大足县| 南澳县| 衡水市| 南雄市| 会同县| 休宁县| 邢台县| 新野县|