Kotlin des Long.MIN_VALUE == -9223372036854775808, aber wenn ich schreibe:Warum Kotlin falsch: val minT: Long = -9223372036854775808L //Long.MIN_VALUE
val minT: Long = -9223372036854775808L //Long.MIN_VALUE
IDEA sagen, dass es falsch war.
Dmitry Jemerov mir gesagt, dies, weil die -
Zeichen in Kotlin nicht Teil der konstant ist, sondern vielmehr der einstellige Minusoperator auf den konstanten Wert angelegt und 9223372036854775808L ist eine größer als der maximal mögliche positive Wert für den Lang Typen.
Aber jetzt, warum Int rechts:
val minI: Int = -2147483648 //Int.MIN_VALUE
Schauen Sie hier:
Ich bin mir nicht sicher, ob ich deine Frage 100% verstehe - hast du erwartet, dass 'val minI: Int = -2147483648' ebenfalls einen Fehler verursacht? –
Hinweis: In der kotlin-stdlib ist diese Konstante definiert als 'public const val MIN_VALUE: Long = -9223372036854775807L - 1L' (Sie können zur Deklaration von 'Long.MIN_VALUE' navigieren). – hotkey
Ja. Ich erwarte 'val minI: Int = -2147483648', um einen Fehler zu erzeugen. Danke für deine Antwort, ich hatte die Konstante des Longs gelesen, und genau das hast du gesagt. Nun, ich weiß 'val val minT: Long = (-9223372036854775807L - 1L)' ist Arbeit, aber es sieht so komisch aus. –