2009-03-05 10 views

答えて

36

これまで、データベースでは、バインドされたパラメータに1から始まるインデックスが使用されていました。これはおそらく、集合理論と数学におけるリレーショナルデータベースの起源を反映しており、要素は1から始まり、0を使用して空集合または空集合を表します。

シェルスクリプトと正規表現では、通常ゼロインデックスは「特別な」ものを意味します。たとえば、シェル・スクリプトの場合、第0番目の「引数」は実際に呼び出されたコマンドです。

JDBCの選択肢は意図的でしたが、最終的には、それが解決するよりも混乱と難易度が高かったでしょう。

+0

数学では、ゼロインデックス付け(通常、私の経験(3クラスBSc)で)を行う方が簡単です。 –

+3

ゼロベースのインデックス作成は数学的なアーティファクトではないと思います。私が持っているすべての線形代数帳は、行/列の番号付けを開始します。1.正しく呼び出すと、FORTRANのデフォルトは1です。私は、ゼロベースのインデックス作成は、Cとポインタ演算の遺産だと思います。 – duffymo

+2

個人的には、0ベースのインデックス作成は、私たちの不幸に突き当たったようなCポインタ算術からの逆戻りだと思います。 –

0

おそらく、JDBCはODBC上でモデル化されています。

+0

私は両方ともX/Openインターフェイスでモデル化されていると思います。 –

0

もっと人間に優しいかもしれませんか?また、Javaの正規表現Matcherのグループは、最初に一致したグループとして1で始まります。

+1

これは正規表現では標準で、0はマッチ全体を意味します。 – Eclipse

2

個人的には、私はこれを悪い設計にするだろう。

2

私はJDBCとODBCの両方がX/Open Call Level Interfaceに基づいていると理解しています。したがって、0ベースの月のようなJava以前の履歴です。

15

これは元の言語のデザイナーが弱者を取り除くためのプロットの一部でした。元の仕様では、配列は-1から番号が付けられ、長さ= 0が返された1要素のリストがあります。

今日、JavaカレンダーAPIだけがこの悪魔的なプロットから残っています。