kotlin中的nullsafe float如何繁殖?
问题描述:
考虑代码例如:kotlin中的nullsafe float如何繁殖?
val contentLength :Long? = 1
val float = contentLength?.toFloat()
val any = (float ?: 0) * 1.25
// ^
// compilation error here
如果我尝试提取可变herem那样:
val casted = (float ?: 0)
IDE表明casted
具有Any
类型。为什么会发生?如何从浮点引用获取nullsafe浮点值并将其乘以另一个浮点值?
修订
更换0
与0.0
:
(float ?: 0.0)
没有效果。 :(
答
更改线路
val any = (float ?: 0.0) * 1.25
到
val any = (float ?: 0.0f) * 1.25f
否则你混合double
和float
什么导致编译错误