我和一些同事正在比较我们过去编程的语言,并在谈论我们在VBScript中的使用经验,它具有奇特的功能,例如基于1的索引而不是几乎所有其他语言都具有的基于0的索引,原因是用户语言(例如Excel VBA)而不是开发人员语言。
然后有人说:“ XPath也有基于1的索引 ”,直到我找到这篇文章,我才不敢相信。在这篇文章中,有很多理由支持基于0的方法,包括Michael Kay本人的一些理由:
- “ ...从零开始的索引趋向于在使用一维数组访问表达式访问多维数组时简化索引公式”
- “在处理表或下标为字符串时,从零开始的寻址通常会更加方便”
- “ ...硬件寻址不是基于0的寻址的唯一好处...它还使计算更容易...”
但随后引用了迈克尔·凯的结论:
...基于1的逻辑是XPath和XSLT的正确选择...因为该语言是为用户而不是为程序员设计的,并且用户仍然习惯将本书的第一章称为Chapter之一...
有人可以向我解释吗? (1)XPath是如何为用户设计的?我无法想象任何不是开发人员都对XPath的语法严格性或XSLT的声明性/功能性编程方面感到困惑的人。和(2)为什么确实的XPath的创造者违背现代编程语言的规范,通过选择基于1指数?
n
,而不是非常不自然的,通常会导致错误n - 1
。对于因“现代编程”逻辑而变态的任何人,开始使用基于1的索引将是一种享受和令人耳目一新的体验:)