美文网首页
揭秘 Kotlin 中的 == 和 ===

揭秘 Kotlin 中的 == 和 ===

作者: Drew_MyINTYRE | 来源:发表于2022-02-12 19:51 被阅读0次

Java 中的操作符 ==

在开始分析之前,我们先来简单回顾一下 Java 中的操作符 == 。

在 Java 中,关于操作符 ==

  • 如果是 基本数据类型 比较的是

  • 如果是 引用数据类型 比较的是 地址

Kotlin 中的操作符 =====equals

  • 比较对象的结构是否相等( == 或者 equals

Kotlin 中的操作符 == 等价于 equals 用于比较对象的结构是否相等(对象的结构就是属性和方法), 很多情况下使用的是 ==,因为对于浮点类型 Float 和 Double,其实现方法 equals 不遵循 IEEE 754 浮点运算标准。

  • 比较对象的引用是否相等 ( === )

Kotlin 中的操作符 === 用于比较对象的引用是否指向同一个对象,运行时如果是基本数据类型 === 等价于 ==

class User(val name: String, val age: Int)

data class Person(val name: String, val age: Int)

class Day15Test {

    @Test
    fun test1() {
        val a = -0
        val b = 0
        assert(a == b)
    }

    @Test
    fun test2() {
        val a = -0f
        val b = 0f
        assert(a == b)
        assert(!a.equals(b))
    }

    @Test
    fun test3() {
        val user1 = User("David", 18)
        val user2 = User("David", 18)
        assert(user1 != user2)
        assert(user1 !== user2)
    }

    @Test
    fun test4() {
        val person1 = Person("David", 18)
        val person2 = Person("David", 18)
        assert(person1 == person2)
        assert(person1 !== person2)
    }
}

相关文章

网友评论

      本文标题:揭秘 Kotlin 中的 == 和 ===

      本文链接:https://www.haomeiwen.com/subject/yghxlrtx.html