Einige Kollegen und ich verglichen frühere Sprachen, in denen wir programmiert hatten, und sprachen über unsere Erfahrungen mit VBScript mit seinen merkwürdigen Funktionen wie 1-basierten Index anstelle von 0-basierten Indizes, wie es fast jede andere Sprache getan hat Sprache für Benutzer (z. B. Excel VBA) anstelle einer Sprache für Entwickler.
Dann sagte jemand: " XPath hat auch 1-basierte Indizes ", was ich nicht glauben konnte, bis ich diesen Artikel fand, in dem viele Gründe für den 0-basierten Ansatz angegeben sind, darunter einige von Michael Kay selbst:
- "... eine auf Null basierende Indizierung vereinfacht die Indexformeln beim Zugriff auf ein mehrdimensionales Array mit einem eindimensionalen Arrayzugriffsausdruck."
- "Beim Behandeln von Tabellen oder beim Abonnieren von Zeichenfolgen ist eine nullbasierte Adressierung oft viel praktischer."
- "... Hardware-Adressierung ist nicht der einzige Vorteil der 0-basierten Adressierung ... sie erleichtert auch die Berechnung ..."
aber dann wird Michael Kay als Schluss zitiert:
... 1-basierte Logik war die richtige Wahl für XPath und XSLT ... da die Sprache für Benutzer und nicht für Programmierer entwickelt wurde und Benutzer immer noch die altmodische Angewohnheit haben, das erste Kapitel eines Buches als Kapitel zu bezeichnen Einer...
Kann mir das jemand erklären? (1) Wie ist XPath für Benutzer konzipiert? Ich kann mir niemanden vorstellen, der kein Entwickler ist, der sich mit der syntaktischen Starrheit von XPath oder den deklarativen / funktionalen Programmieraspekten von XSLT auseinandersetzt. und (2) Warum haben die Entwickler von XPath wirklich gegen die Norm moderner Programmiersprachen verstoßen, indem sie einen 1-basierten Index gewählt haben?
n
nicht sehr unnatürlich und führt häufig zu Fehlern n - 1
. Für alle, die aufgrund der "modernen Programmier"