XPath のインデックスが 0 ではなく 1 から始まるのはなぜですか? 質問する

XPath のインデックスが 0 ではなく 1 から始まるのはなぜですか? 質問する

同僚と私は、過去にプログラミングした言語を比較し、その経験について話していました。VBスクリプトその奇数次のような機能1から始まるインデックス他のほとんどの言語が採用している0から始まるインデックスではなく、ユーザー向け言語(例: Excel VBA) 開発者向けの言語ではなく、

すると誰かが言いました。「XPathには1から始まるインデックスもあります「私はそれを見つけるまで信じられませんでしたこの記事多くの理由が挙げられている0ベースのアプローチを支持マイケル・ケイ本人からのコメントもいくつかあります:

  • 「...ゼロベースのインデックスは、1 次元配列アクセス式を使用して多次元配列にアクセスするときに、インデックス式を簡素化する傾向があります。」
  • 「テーブルを扱ったり、文字列に添え字を付けたりする場合、ゼロベースのアドレス指定の方がはるかに便利な場合が多い」
  • 「...ハードウェア アドレス指定は、0 ベースのアドレス指定の唯一の利点ではありません...計算も容易になります...」

しかし、マイケル・ケイは次のように結論づけている。

...1 ベースのロジックは、XPath と XSLT にとって正しい選択でした...この言語はプログラマー向けではなくユーザー向けに設計されており、ユーザーは今でも本の最初の章を「第 1 章」と呼ぶという昔ながらの習慣を持っているためです...

誰か私にそれを説明してくれませんか?(1)XPathはユーザー向けにどのように設計されているか?開発者以外の人が、XPath の構文の厳密さや XSLT の宣言型/関数型プログラミングの側面に取り組んでいるとは想像できません。(2)XPathの作成者は、なぜ1から始まるインデックスを選択することで、現代のプログラミング言語の標準に反したのでしょうか?

ベストアンサー1

配列やその他のコレクションのインデックスはメモリ オフセットを表すため、当然 0 から始まります。XML および XPATH のインデックスは位置とカウントを表すため、当然 1 から始まります (したがって、0 は「空」を表します)。

おすすめ記事