首页 > 解决方案 > 在 kotlin 中减去 2 个可为空的浮点类型

问题描述

我有两个可以为空的浮点属性,我想减去它们:

val dis1: Float? = 10.0f
val dis2: Float? = 5.0f

val value = dis1 - dis2

我创建了这个扩展功能。但它进入无限循环:

operator fun Float?.minus(dis2: Float?): Float {
  return this - dis2
}

标签: kotlin

解决方案


简单你可以使用

operator fun Float?.minus(dis2: Float?): Float {
    return (this ?: 0f) - (dis2 ?: 0f)
}

?:检查值是否存在,如果不存在则分配默认值

但它进入无限循环

您的扩展将进入无限循环,因为在返回类型中您再次 在两个可为空的浮点数上调用-(Minus) 。


推荐阅读