2017-09-27 4 views
3

Betrachten Codebeispiel:Wie Multiply Nullsafe Float in Kotlin?

val contentLength :Long? = 1 
val float = contentLength?.toFloat() 
val any = (float ?: 0) * 1.25 
//     ^
//   compilation error here 

Wenn ich versuche, variable here so zu extrahieren:

val casted = (float ?: 0) 

IDE zeigt, dass castedAny als Typ hat. Warum passiert es? Wie erhält man den Nullsafe-Float-Wert aus der Float-Referenz und multipliziert ihn mit einem anderen Float-Wert?

(float ?: 0.0) 

hat keine Wirkung:

0 mit 0.0 Ersetzen AKTUALISIERT. :(

Antwort

8

Ändern Sie die Zeile

val any = (float ?: 0.0) * 1.25 

zu

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

Sie double und float Else mischen, was

zum Compiler-Fehler führt