Kotlin 为什么我会从下面的逻辑中得到错误的结果?

Kotlin 为什么我会从下面的逻辑中得到错误的结果?,kotlin,Kotlin,为什么我会从下面的逻辑中得到一个false 这是非常简单的逻辑。因为结果不是空的(真),所以我认为结果会是真的。 有人知道为什么吗 @Test internal fun test() { val result = createBoolean() val recentYear : Int = 200 val finalResult = result ?: recentYear == 200 print(finalR

为什么我会从下面的逻辑中得到一个false

这是非常简单的逻辑。因为结果不是空的(真),所以我认为结果会是真的。 有人知道为什么吗

    @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
    }

Elvis运算符优先于相等运算符。看


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

Elvis运算符优先于相等运算符。看

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

我认为它被解析为(result?:recentYear)==200我认为它被解析为(result?:recentYear)==200