kotlin - 在 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
}
解决方案
简单你可以使用
operator fun Float?.minus(dis2: Float?): Float {
return (this ?: 0f) - (dis2 ?: 0f)
}
?:检查值是否存在,如果不存在则分配默认值
但它进入无限循环
您的扩展将进入无限循环,因为在返回类型中您再次 在两个可为空的浮点数上调用-(Minus) 。
推荐阅读
- node.js - Mongoose:Model.aggregate 返回一个空数组
- npm - 是否需要注意npm漏洞警告,?
- c# - 内部服务器错误 GDI+ 中出现一般错误
- java - 如何从 WEB-INF/classes/log4j.properties 检索安装在 Websphere Application Server (WAS) 上的应用程序的应用程序日志文件路径?
- javascript - 输入的值未分配给 div
- javascript - 向对象添加动态内容
- google-cloud-platform - 如何将静态外部 IP 地址附加到 GCP Cloud TPU 虚拟机?
- django - 使用 Django 中现有的 Pandas DataFrame 更新 SQL 表
- laravel - Laravel 最后一批作业处于待处理状态
- java - 我正在尝试将显示表从一个 HTML 页面移动到另一个页面,但新页面无法识别旧页面所做的某些元素