我是Kotlin的新手,对Kotli的内置FLoat.isNaN和Double.isNaN函数有问题。当使用Float.isNaN函数测试浮点数组列表的NaN相等时,我收到错误:
未解析的引用。由于接收器类型不匹配,以下候选者均不适用:
- public内联fun Double.isNaN((:在kotlin public中定义的布尔值
- 内联fun Float.isNaN((:在kotlin中定义的布尔值
下面列出了伪代码,感谢您的帮助:
var scores = arrayListOf<Float>()
val todaysResult = scores[0]
if(Float.isNaN(todaysResult)) {
todayResultNumericTextView!!.text = "-"
} else {
todayResultNumericTextView!!.text = Math.round(todaysResult).toString() + "%"
}
isNaN
是Float
和Double
上的一个扩展函数(与Java不同,它不是一个"静态"方法!(这意味着您必须使用值作为接收器来调用它。
fun Double.isNaN(): Boolean
fun Float.isNaN(): Boolean
代替
Float.isNaN(todaysResult)
你想要
todaysResult.isNaN()
这也由错误消息表示:
kotlin
中定义的public inline fun Double.isNaN(): Boolean
kotlin
中定义的public inline fun Float.isNaN(): Boolean
语法Float.isNaN()
表示此函数采用类型为Float
的接收器。
另请参阅:扩展(Kotlin参考(