long.isValidIntの場合、明らかに対応するInt値に評価されます。ScalaでLong.toIntのセマンティクスは何ですか?
しかし、そうでない場合はどうなりますか?先頭のビットを単に削除するのと同じですか?
long.isValidIntの場合、明らかに対応するInt値に評価されます。ScalaでLong.toIntのセマンティクスは何ですか?
しかし、そうでない場合はどうなりますか?先頭のビットを単に削除するのと同じですか?
先頭のビットを単純に削除するのと同じですか?
はい。
変換方法の規則を使用して、ターゲット・タイプにレシーバオブジェクトを変換toByte、toShort、するtoChar、オーバーライド:、toLong、toFloat、toDouble:このあなたはどちらかそれを試すかfollowing section of the Scala specificationを参照することができますを確認するにはJavaの数値型キャスト操作。変換によって数値が切り捨てられることがあります(LongからInt、またはIntからByteに移動する場合など)、精度が低下する可能性があります(DoubleからFloatまたはLongとFloatの間の変換の場合など)。
そしてcorresponding section of the Java specification:
整数型Tへの符号付き整数の縮小変換は、単に、nが型Tを表すために使用されるビットの数であるnは最下位ビットが、すべて破棄数値の大きさに関する情報の損失の可能性に加えて、結果値の符号と入力値の符号が異なる可能性があります。
これは、toInt
メソッドのScalaDocsで説明されているだけではありませんが、わかりません。