2
私はkotlinでJVM用の高速jsonパーサーを作成しようとしています。kotlinではリテラル "-9223372036854775808"(最小64ビット符号付き整数)が受け入れられないのはなぜですか?
私はこの問題を発見しましたが、これはバグかこれの背後にある正当な理由であるとは確信していません。
val x: Long = -9223372036854775808L // compile error
私はkotlinでJVM用の高速jsonパーサーを作成しようとしています。kotlinではリテラル "-9223372036854775808"(最小64ビット符号付き整数)が受け入れられないのはなぜですか?
私はこの問題を発見しましたが、これはバグかこれの背後にある正当な理由であるとは確信していません。
val x: Long = -9223372036854775808L // compile error
これはkotlin KT-17172にバグとしてマークされています。あなたは以下のようにコードを使用してSTDLIBを見ることができるよう
は:
public const val MIN_VALUE: Long = -9223372036854775807L - 1L
あなたはkotlinで単項演算子-
を覚えていますか? MIN_VALUE
を特別な部分に分割すると、その部分がはっきりとわかる場合があります。
val x: Long = -(9223372036854775808L);
// ^--- the value overflow since the MAX_VALUE is 9223372036854775807L
「-9223372036854775807L」が受け入れられ、面白いです...正確なメッセージが提供されていれば役立つでしょう。 – zerkms