Igualdade
Igualdade estrutural
Definição
A igualdade estrutural é verificada pelo operador == e sua negação é !=.
A função .equals() exerce a mesma função de ==.
DOCUMENTAÇÃO: clique aqui
Sintaxe
[valor 1] == [valor 2]Exemplo
println(2 == 2) // trueprintln(2 != 2) // falseIgualdade Referencial
Definição
A igualdade referencial é verificada pelo operador == e sua negação é !==.
Esse operador verifica se 2 objetos apontam para o mesmo local na memória.
Essa expressão retorna um valor booleano, sendo true se os objetos estiverem armazenados no mesmo local na memória e false se não estiverem.
DOCUMENTAÇÃO: clique aqui
Sintaxe
[objeto 1] === [objeto 2]Exemplo
class Pessoa(val nome: String)
fun main() {
val person1 = Pessoa("Gabriel")
val person2 = Pessoa("Gabriel")
// person1 e person2 são objetos diferentes, portanto referências distintas
println(person1 === person2) // false
}class Pessoa(val nome: String)
fun main() {
val person1 = Pessoa("Gabriel")
val person2 = Pessoa("Gabriel")
// person1 e person2 são objetos diferentes, portanto referências distintas
println(person1 !== person2) // true
}OBS
Para tipos primitivos (números, char, boolean) o operador === tem a mesma função do ==.
val a = 12
val b = 12
println(a === b) // true
println(a == b) // true