Sobes.tech
Junior

Jaký je rozdíl mezi dvojitým a trojitým rovností v Kotlinu, a k čemu byl zaveden trojitý rovnost?

sobes.tech AI

Odpověď od AI

== porovnává obsah objektů (strukturní rovnost), voláním metody equals(). === porovnává reference na objekty (referenční rovnost), kontrolou, zda ukazují na stejný exemplář v paměti.

Trojitá rovnost (===) byla zavedena pro explicitní porovnání odkazů, což je užitečné pro optimalizaci (například vyhýbání se zbytečnému kopírování nebo výpočtům, pokud jsou objekty identické) a v případech, kdy je třeba přesně vědět, zda dvě proměnné odkazují na stejný exemplář. V Javě odpovídá operátoru == pro objekty. V Kotlinu je == přetížené pro porovnání obsahu, proto je potřeba samostatný operátor pro referenční rovnost.