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) // true
println(2 != 2) // false
Igualdade 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