2009-03-05 5 views

Antwort

36

In der Vergangenheit verwendeten Datenbanken 1-basierte Indizierung für gebundene Parameter. Dies spiegelt wahrscheinlich die Ursprünge relationaler Datenbanken in der Mengentheorie und Mathematik wider, die Elemente beginnend mit eins indexieren und null verwenden, um eine leere oder leere Menge darzustellen.

In Shell-Skripten und regulären Ausdrücken bedeutet der Nullindex normalerweise etwas "Besonderes". Im Fall von Shell-Skripten ist das nullte "Argument" beispielsweise der Befehl, der aufgerufen wurde.

Die Wahl für JDBC war absichtlich, aber letztlich verursacht wahrscheinlich mehr Verwirrung und Schwierigkeiten, als es löst.

+0

In der Mathematik ist es normalerweise einfacher, mit Nullindexierung zu gehen (meiner Erfahrung nach (dritte Klasse BSc)). –

+3

Ich glaube nicht, dass Zero-basierte Indexierung ein mathematisches Artefakt ist. Jedes lineare Algebra-Buch, das ich habe, fängt an, Zeilen/Spalten mit 1. FORTRAN-Voreinstellungen von 1 zu nummerieren, wenn ich mich richtig erinnere. Ich denke, Zero-basierte Indexierung ist ein Vermächtnis von C und Zeigerarithmetik. – duffymo

+2

Persönlich denke ich, 0-basierte Indexierung ist ein Rückfall von C-Zeiger-Arithmetik, die zu dem Unglück von uns allen zu stecken scheint. –

0

Wahrscheinlich wurde JDBC ODBC modelliert.

+0

Ich denke, beide wurden auf einer X/Open-Schnittstelle modelliert. –

0

Mehr menschlich freundlich vielleicht? Außerdem beginnt die Matcher-Gruppe für reguläre Ausdrücke in Java mit 1 als erste übereinstimmende Gruppe.

+1

Dies ist Standard bei regulären Ausdrücken, da 0 für die gesamte Übereinstimmung steht. – Eclipse

2

Persönlich würde ich dies zu schlechtem Design kreieren.

2

Ich verstehe sowohl JDBC als auch ODBC basieren auf dem X/Open Call Level Interface. Also, es ist Pre-Java-Geschichte, wie 0-basierte Monatszahlen.

15

Dies war Teil einer Handlung der ursprünglichen Sprache Designer, um die Schwachen auszusondern. In der ursprünglichen Spezifikation wurden Arrays von -1 nummeriert und Listen mit 1 zurückgegebenen Element length = 0.

Heute bleibt nur die Java-Kalender-API von diesem diabolischen Diagramm übrig.

Verwandte Themen