考虑代码示例:
val contentLength :Long? = 1
val float = contentLength?.toFloat()
val any = (float ?: 0) * 1.25
// ^
// compilation error here
如果我尝试像这样提取变量:
val casted = (float ?: 0)
IDE显示casted
类型为Any
。为什么会这样?如何从浮点引用中获取nullsafe浮点值并将其乘以另一个浮点值?
已更新
用0
替换0.0
:
(float ?: 0.0)
无效。 :(
答案 0 :(得分:8)
更改行
val any = (float ?: 0.0) * 1.25
到
val any = (float ?: 0.0f) * 1.25f
否则你会混淆导致编译错误的double
和float