2017-09-27 50 views
3

考虑代码例如: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浮点值并将其乘以另一个浮点值?

修订

更换00.0

(float ?: 0.0) 

没有效果。 :(

回答

8

更改线路

val any = (float ?: 0.0) * 1.25 

val any = (float ?: 0.0f) * 1.25f 

否则你混合doublefloat什么导致编译错误