如何解决Kotlin中的Float.isNaN'接收器类型不匹配'错误
我是Kotlin的新手,对Kotli'ns内置的FLoat.isNaN和Double.isNaN函数有疑问。当使用Float.isNaN函数测试浮点数组列表的NaN相等时,我收到错误消息:
未解决的参考。由于接收器类型不匹配,以下候选者都不适用:
- 公共内联乐趣Double.isNaN():在kotlin public中定义的布尔值
- 内联乐趣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()
错误消息也表明了这一点:
在public inline fun Double.isNaN(): Boolean
中定义的中定义的
kotlin
public inline fun Float.isNaN(): Boolean
kotlin
语法Float.isNaN()
表示此函数采用类型为Float
的接收器。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。