kotlin - 为什么我会从以下逻辑中得到错误的结果?
问题描述
为什么我从以下逻辑中得到错误?
这是非常简单的逻辑。由于结果不是 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
}
解决方案
Elvis 运算符优先于相等运算符。请参阅此处的文档。
除代数运算符外,运算符优先级因语言而异,因此很难记住。我建议在有任何歧义时使用括号。