私は驚いています。 Rangeを入力するための実装の制限が、Int.MaxValueによって制限されているのはなぜですか?おかげさまで 範囲の制限
Q
範囲の制限
1
A
答えて
5
NumericRange
は、任意のタイプで を作品Range
クラスのより一般的なバージョンです。範囲タイプの実装はIntegral
で指定する必要があります。
Range.BigInt
,Range.Long
およびRange.BigDecimal
があります。完全性のためにRange.Int
が存在するが、Int
ベースのscala.Range
がより効果的でなければならない。私の意見でval r1 = new Range(0, 100, 1) val veryBig = Int.MaxValue.toLong + 1 val r2 = Range.Long(veryBig, veryBig + 100, 1) assert(r1 sameElements r2.map(_ - veryBig))
0
他の答えは単に間違っています。
これは他の数値タイプを使用できることを示していますが、Range
は、Scala/Javaの他のすべてのコレクションと同様に2³¹
要素しか保持できないという事実は変わりません。
私が知る限り、このデザイン決定の背後には本当の根拠はありません。 64ビットコレクションを持つことは確かに素晴らしく、64ビットインデックスを持つ配列のサポートはJavaにとっては一般的ですが、既存の言語/コレクションフレームワークに統合するのは難しいです。 JVMは合計40億個のオブジェクトに限られていると言う人もいますが、確認できませんでした。
関連する問題
- 1. 制限範囲
- 2. P:inputNumber範囲の制限
- 3. ストリームとコメントのFQL範囲の制限
- 4. 最大配列の範囲の制限
- 5. Android:制限のあるレイアウトスクロール範囲
- 6. WebRTC TURNサーバーのIP範囲アクセス制限
- 7. AWS IP範囲のssh制限
- 8. Zxing.Netのスキャン範囲を制限する
- 9. mysqldumpレコードの範囲を制限する
- 10. 無制限の配列範囲VB.NET
- 11. OWLの時間範囲制限
- 12. DB4O:範囲でクエリを制限する
- 13. Ajax TruClient、使用範囲と制限?
- 14. 範囲パラメータを制限する方法
- 15. GoogleスプレッドシートonEdit - 範囲に制限する
- 16. 動的UIScrollViewの制約範囲を制限する
- 17. 子実装のためのメソッドの制限範囲
- 18. 「異なるフィールドの範囲フィルタ」制限の回避策?
- 19. OWLオブジェクトプロパティのドメイン/範囲の制限が同じレベルクラス
- 20. MS Excelでセルの範囲内のデータを制限する
- 21. MySQLの制限されたTIMESTAMP範囲の回避策?
- 22. Pythonのeval()結果の範囲を制限できますか?
- 23. R予測パッケージの予測値の範囲を制限する
- 24. RoslynセマンティックモデルのLookupSymbolsメソッドの範囲を制限する
- 25. 入力テキストのangular2の範囲を制限する方法は?
- 26. テンソルフローの変数の範囲を制限する方法
- 27. html5無制限の値の範囲を持つ入力時間
- 28. 範囲ごとの制限があるバッチスキャナ
- 29. リテラル演算子の範囲を制限する方法
- 30. サービスワーカーの範囲内にあるフォルダを制限する
内部で 'Range'がパラメータ化されておらず、' Int'を使用しているためですか? '新しい範囲(開始:Int、終了:Int、ステップ:Int)' http://www.scala-lang.org/api/current/index.html#scala.collection.immutable.Range –
そして?それは明らかですが、Longを使わない理由は何ですか? – dvigal
回答をもう一度確認できますか? – soc