일부 동료와 나는 우리가 프로그램 한 과거의 언어를 비교하고 우리의 경험에 대해 얘기했다 VBScript를 그와 이상한 같은 기능 인덱스 1 기반 대신 0 기반 인덱스가 거의 모든 다른 언어, 추론 그것이을 것을있는 것처럼 개발자 용 언어 대신 사용자 용 언어 (예 : Excel VBA).
그런 다음 누군가가 " XPath에도 1 기반 인덱스가 있습니다 "라고 말했습니다. Michael Kay 자신의 일부를 포함 하여 0 기반 접근 방식을 선호 하는 많은 이유가있는 이 기사 를 발견 할 때까지 믿을 수 없었습니다 .
- "... 0 기반 인덱싱은 1 차원 배열 액세스 표현식으로 다차원 배열에 액세스 할 때 색인 공식을 더 간단하게 만드는 경향이 있습니다."
- "테이블을 처리하거나 문자열로 첨자 할 때 0 기반 주소 지정이 훨씬 더 편리합니다."
- "... 하드웨어 주소 지정은 0 기반 주소 지정의 유일한 이점이 아닙니다. 계산이 더 쉬워집니다 ..."
그러나 Michael Kay는 결론적으로 인용됩니다.
... 1 기반 논리는 XPath 및 XSLT에 적합한 선택이었습니다 ... 언어는 프로그래머가 아닌 사용자를 위해 설계되었으며 사용자는 여전히 책의 첫 번째 장을 장이라고 부르는 구식 습관을 가지고 있기 때문입니다. 하나...
누군가 나에게 그것을 설명 할 수 있습니까? (1) XPath는 사용자를 위해 어떻게 설계 되었습니까? XPath의 구문 적 경직성이나 XSLT의 선언적 / 기능적 프로그래밍 측면과 씨름하는 개발자가 아닌 사람은 상상할 수 없습니다. 및 (2) 왜 정말 XPath에의 창조자는 1부터 시작하는 인덱스를 선택하여 현대적인 프로그래밍 언어의 규범에 갔습니까?
n
매우 부자연스럽지 않고 종종 오류로 이어지는 범위로 지정할 수 있습니다 n - 1
. "현대적인 프로그래밍"논리로 인해 왜곡 된 사람에게 1 기반 인덱싱을 사용하기 시작하는 것은 즐겁고 상쾌한 경험이 될 것입니다. :)