Java の他のどこでも、インデックスを持つものはすべて 0 から始まります。ここに変更の理由はありますか、それとも単に設計が悪いのでしょうか?
11393 次
6 に答える
42
歴史的に、データベースはバインドされたパラメーターに 1 ベースのインデックスを使用してきました。これはおそらく集合論と数学におけるリレーショナル データベースの起源を反映しており、1 から始まる要素にインデックスを付け、0 を使用して null または空のセットを表します。
シェル スクリプトと正規表現では、ゼロ インデックスは通常、「特別な」ものを意味します。たとえば、シェル スクリプトの場合、0 番目の「引数」は実際に呼び出されたコマンドです。
JDBC の選択は慎重に行われましたが、最終的には、解決するよりも多くの混乱と困難を引き起こす可能性があります。
于 2009-03-05T19:04:54.003 に答える
20
これは、弱者を取り除くための元の言語設計者による計画の一部でした。元の仕様では、配列には-1から番号が付けられ、1つの要素を持つリストは長さ=0を返しました。
今日、この悪魔的なプロットから残っているのはjavaCalendarAPIだけです。
于 2009-03-05T19:23:55.813 に答える
2
個人的には、これは悪い設計に起因すると思います。
于 2009-03-05T19:04:18.857 に答える
0
おそらく、JDBC は ODBC をモデルにしていると思われます。
于 2009-03-05T19:02:52.760 に答える
0
多分もっと人間に優しいでしょうか?また、Java の正規表現 Matcher のグループは、最初に一致したグループとして 1 から始まります。
于 2009-03-05T19:03:22.977 に答える