首页 > 解决方案 > 为什么我会从以下逻辑中得到错误的结果?

问题描述

为什么我从以下逻辑中得到错误?

这是非常简单的逻辑。由于结果不是 null(ture),我认为结果将是正确的。有谁知道为什么?

    @Test
    internal fun test() {

        val result = createBoolean()
        val recentYear : Int = 200
        val finalResult = result ?: recentYear == 200

        print(finalResult) // result is false

    }

    private fun createBoolean(): Boolean? {
        return true
    }

标签: kotlin

解决方案


Elvis 运算符优先于相等运算符。请参阅此处的文档

除代数运算符外,运算符优先级因语言而异,因此很难记住。我建议在有任何歧义时使用括号。


推荐阅读