成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kotlin里的`==`和`===`到底有啥不一樣?

開發(fā) 前端
1假設(shè)你和你兄弟用同款手機:用==比較:是不是同型號、同顏色、同配置?(內(nèi)容一樣就算對)用===比較:是不是同一部手機?(必須是同一個物體)

舉個栗子先感受下

假設(shè)你和你兄弟用同款手機:

  • 用==比較:是不是同型號、同顏色、同配置?(內(nèi)容一樣就算對)
  • 用===比較:是不是同一部手機?(必須是同一個物體)

這倆符號具體咋用?

 ==(內(nèi)容相等)

  • 就像查戶口:檢查對象里每個屬性值是否完全一致
  • 底層原理:自動調(diào)用equals()方法(自己寫的類要重寫這個方法才有意義)
// 字符串比較(內(nèi)容相同就認)
val a = "蘋果14"
val b = "蘋果" + 14
println(a == b) // true(內(nèi)容一樣)

// 自定義類比較(沒重寫equals時)
class 手機(val 型號: String)
val 手機A = 手機("Mate60")
val 手機B = 手機("Mate60")
println(手機A == 手機B) // false(默認只比內(nèi)存地址)

 ===(物理相等)

  • 就像查身份證:必須是同一個對象才返回true
  • 特殊福利:數(shù)字類型(比Int、Char、Boolean 等)Kotlin 會進行優(yōu)化會被緩存復(fù)用,相同的值可能會指向同一個對象
// 同值不同對象
val 張三 = 手機("P70")
val 李四 = 手機("P70")
println(張三 === 李四) // false 

// 特殊數(shù)字緩存
val 錢1 = 100
val 錢2 = 100
println(錢1 === 錢2) // true(在緩存范圍內(nèi))

val 大錢1 = 100000
val 大錢2 = 100000  
println(大錢1 === 大錢2) // false(超出緩存)

什么時候用哪個?

用==的場合:

  • 比用戶輸入的內(nèi)容
  • 檢查兩個訂單是否相同商品
  • 驗證密碼是否正確
  • 數(shù)據(jù)類(data class)自動支持內(nèi)容比較

用===的場合:

  • 檢查是不是同一個用戶登錄
  • 單例模式驗證實例
  • 發(fā)現(xiàn)內(nèi)存泄漏時追蹤對象
  • 優(yōu)化性能(比如避免重復(fù)創(chuàng)建對象)

容易踩坑的地方

坑1:空對象比較

val 空訂單: 訂單? = null
val 另一個空訂單: 訂單? = null
println(空訂單 == 另一個空訂單) // true(都空)
println(空訂單 === 另一個空訂單) // true(都指向null)

坑2:字符串陷阱

val 名字1 = "張三"
val 名字2 = "張" + "三"
println(名字1 === 名字2) // true(編譯器優(yōu)化成同一個)

val 動態(tài)名字 = StringBuilder().append("張").append("三").toString()
println(名字1 === 動態(tài)名字) // false(動態(tài)生成的地址不同)

總結(jié)

雙等號,比內(nèi)容; 三等號,查身份。 基本類型看緩存, 對象比較要區(qū)分。

  • 優(yōu)先用==比較內(nèi)容,除非確實需要判斷是否是同一個對象
  • 寫數(shù)據(jù)類時直接用data class,自動幫你實現(xiàn)equals()
  • 遇到===返回true但內(nèi)容不同?檢查是否修改了可變對象
  • 調(diào)試時用===快速定位對象是否被意外復(fù)用

操作符

名稱

比較內(nèi)容

Java

==

結(jié)構(gòu)相等

對象內(nèi)容是否相同

equals()

===

引用相等

是否引用同一個對象

==

責(zé)任編輯:武曉燕 來源: 沐雨花飛碟
相關(guān)推薦

2020-05-15 10:16:43

HttpHttps網(wǎng)絡(luò)協(xié)議

2012-03-07 17:24:10

戴爾咨詢

2012-12-20 10:17:32

IT運維

2017-11-03 07:57:19

2021-02-15 11:32:20

Apt-getLinuxApt

2011-03-14 16:51:24

2021-12-23 15:11:46

Web 3.0元宇宙Metaverse

2016-05-09 18:40:26

VIP客戶緝拿

2017-05-25 15:02:46

聯(lián)宇益通SD-WAN

2015-10-19 12:33:01

華三/新IT

2023-03-20 08:19:23

GPT-4OpenAI

2018-05-09 15:42:24

新零售

2009-02-04 15:43:45

敏捷開發(fā)PHPFleaPHP

2009-12-01 16:42:27

Gentoo Linu

2009-02-05 19:05:46

Windows 7試用虛擬機

2020-07-31 16:18:14

微信微信號移動應(yīng)用

2010-11-24 20:18:48

Microsoft L統(tǒng)一溝通

2009-06-12 15:26:02

2011-02-28 10:38:13

Windows 8

2016-03-24 18:51:40

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: www.成人.com | 少妇精品久久久久久久久久 | 国产伦精品一区二区三区四区视频 | 午夜影院在线观看 | 激情国产 | 殴美一级片 | 四虎影院久久 | 久久精品一 | 成人免费观看男女羞羞视频 | 久久另类 | 在线观看电影av | 日日操视频 | 国产精品久久影院 | 国产色| 日韩理论电影在线观看 | 在线中文视频 | 国产亚洲精品久久久久动 | 国产无人区一区二区三区 | 伊人精品视频 | 九九导航| 成人国产一区二区三区精品麻豆 | 国产一区二区三区在线免费 | 久草视频在线播放 | av黄色在线观看 | 天天久 | 黑人巨大精品欧美一区二区免费 | 日日夜夜免费精品视频 | 国产探花在线精品一区二区 | 久久亚洲一区二区三区四区 | 亚洲视频在线一区 | 日韩视频在线一区 | 精品国产伦一区二区三区观看方式 | 一级片成人 | 国产成视频在线观看 | 综合久久久 | 久久久久无码国产精品一区 | 日韩欧美在 | 亚洲日韩中文字幕一区 | 国产黄色麻豆视频 | 国产区在线 | 黄a网站 |