Javaのどこにいても、インデックスを持つものは0から始まります。ここに変更がある理由はあるのですか、これはちょうど悪いデザインですか?JDBCでは、プリペアドステートメントのパラメータインデックスは、なぜ0ではなく1から始まるのですか?
答えて
これまで、データベースでは、バインドされたパラメータに1から始まるインデックスが使用されていました。これはおそらく、集合理論と数学におけるリレーショナルデータベースの起源を反映しており、要素は1から始まり、0を使用して空集合または空集合を表します。
シェルスクリプトと正規表現では、通常ゼロインデックスは「特別な」ものを意味します。たとえば、シェル・スクリプトの場合、第0番目の「引数」は実際に呼び出されたコマンドです。
JDBCの選択肢は意図的でしたが、最終的には、それが解決するよりも混乱と難易度が高かったでしょう。
数学では、ゼロインデックス付け(通常、私の経験(3クラスBSc)で)を行う方が簡単です。 –
ゼロベースのインデックス作成は数学的なアーティファクトではないと思います。私が持っているすべての線形代数帳は、行/列の番号付けを開始します。1.正しく呼び出すと、FORTRANのデフォルトは1です。私は、ゼロベースのインデックス作成は、Cとポインタ演算の遺産だと思います。 – duffymo
個人的には、0ベースのインデックス作成は、私たちの不幸に突き当たったようなCポインタ算術からの逆戻りだと思います。 –
おそらく、JDBCはODBC上でモデル化されています。
私は両方ともX/Openインターフェイスでモデル化されていると思います。 –
もっと人間に優しいかもしれませんか?また、Javaの正規表現Matcherのグループは、最初に一致したグループとして1で始まります。
これは正規表現では標準で、0はマッチ全体を意味します。 – Eclipse
個人的には、私はこれを悪い設計にするだろう。
私はJDBCとODBCの両方がX/Open Call Level Interfaceに基づいていると理解しています。したがって、0ベースの月のようなJava以前の履歴です。
これは元の言語のデザイナーが弱者を取り除くためのプロットの一部でした。元の仕様では、配列は-1から番号が付けられ、長さ= 0が返された1要素のリストがあります。
今日、JavaカレンダーAPIだけがこの悪魔的なプロットから残っています。
- 1. なぜ私のコレクションは1ではなく0で始まると決めましたか?
- 2. ルビで1 && 0が0のときに0 && 1が1になるのはなぜですか?
- 3. JavaScriptで「0 === -0」がtrueになるのはなぜですか?
- 4. なぜwindbgコマンドはで始まるのですか?または!
- 5. y軸はggplotで0から始まらない
- 6. Rails - なぜ1つはうまくいくのですか?
- 7. なぜ0 + 1 == 49ですか?
- 8. QTimer :: singleShotは、時刻1でメインスレッドをブロックするが、0ではないのはなぜですか?
- 9. なぜintポインタ '++'は1ではなく4だけインクリメントするのですか?
- 10. なぜ2 + 1&0結果が0ですか? VC2008で
- 11. なぜxmlhttp.statusは常に0ですか?
- 12. 最大値ではなく0からカウンタを開始するにはどうすればよいですか?
- 13. なぜ!== 0は0ではなく0に等しい値を返しますか?
- 14. 変数が数値で始まるのはなぜですか?
- 15. apply()はなぜ2つではなく1つの引数しか取らないのですか?
- 16. なぜ識別子は数字で始まらないのですか?
- 17. 私の番号が0になるのはなぜですか?
- 18. なぜ0 === -0は真ですが、1/0 === 1/-0は偽ですか?私はコンソールに次のコードを投稿する
- 19. addArcWithCenterに0度のstartAngleを指定すると、90度から開始されるのはなぜですか?
- 20. このCGBitmapContextCreateでは、なぜbytesPerRowは0ですか?
- 21. y軸は、Windowsアプリケーションを使用してmschartで0ではなく10から開始します
- 22. mainのデフォルト戻り値がEXIT_SUCCESSではなく0であるのはなぜですか?
- 23. Java同等の戻り値。正確に1、-1または0でなくてはなりませんか?
- 24. Mysql BOOLフィールドに使用する値はどれですか:TRUE/FALSEまたは1/0、なぜですか?
- 25. 私のアレイ全体が '\ 0'なのはなぜですか?
- 26. Javascript minificationなぜ偽は!1で置き換えられ、!0で真です
- 27. セミコロンでスクリプトを開始するのはなぜですか?
- 28. リロード時にJSONインデックスが0から始まるのではなく、自分自身に追加されます
- 29. HTML Textarea - 上からではなくテキストエリアの中心から始まるカーソル
- 30. なぜこのforループはリストではなくリストから1つのフィールドを返しませんか?
私は、特にResultSetsも1つのインデックスが付いているので、同じことを考えていました。 – Uri