不能在基元和盒装变量之间应用等运算符

时间:2017-07-03 00:34:24

标签: kotlin

在Kotlin中,将一些Long值与0比较是很简单的。

if (firstUnread == 0) {
    return
}

但通常会发生此错误。比较这些值的最佳方法是什么?

  

运算符'=='无法应用于'Long'和'Int'

3 个答案:

答案 0 :(得分:3)

0是Kotlin中的Int。 尝试用0L代替它,它会起作用。

答案 1 :(得分:0)

在Kotlin中,数字没有隐含的扩展转换:https://kotlinlang.org/docs/reference/basic-types.html

在您的代码中,您尝试将LongfirstUnread)与Int0)进行比较。而是与0L进行比较,因此您要将LongLong.

进行比较

答案 2 :(得分:0)

您可以在任何int号后轻松添加.toLong()方法。 只需将您的代码更改为:

if (firstUnread == 0.toLong()) {
    return
}