Sobes.tech
Junior

Mis vahe on topelt- ja kolmekordsel võrdusel Kotlinis ning milleks kolmekordne võrdlus oli sisse viidud?

sobes.tech AI

Vastus AI-lt

== võrdleb objektide sisu (struktuuriline võrdlus), kutsudes välja equals() meetodi. === võrdleb objektide viiteid (viidete võrdlus), kontrollides, kas need osutavad samale eksemplarile mälus.

Kolme võrdusmärgi (===) kasutuselevõtt võimaldab selget viidete võrdlust, mis on kasulik optimeerimiseks (näiteks, vältida tarbetuid koopiaid või arvutusi, kui objektid on identsed) ning olukordades, kus on vaja täpselt teada, kas kaks muutujat viitavad samale eksemplarile. Java-s vastab see == operaatorile objektidele. Kotlinis on == ülekoormatud sisu võrdluseks, seega on vaja eraldi operaatorit viidete võrdluseks.