2009-03-05 12 views

답변

36

역사적으로 데이터베이스는 바인딩 된 매개 변수에 대해 1 기반 인덱싱을 사용했습니다. 이것은 집합 이론과 수학에서 관계형 데이터베이스의 기원을 반영 할 것입니다.이 관계형 데이터베이스는 1로 시작하는 요소를 색인화하고 0을 사용하여 null 또는 빈 집합을 나타냅니다.

셸 스크립트와 정규 표현식에서 제로 인덱스는 일반적으로 "특별한"것을 의미합니다. 예를 들어 쉘 스크립트의 경우, "인수"가 실제로 호출 된 명령입니다.

JDBC에 대한 선택은 의도적이지만 궁극적으로 해결할 수있는 것보다 혼란과 어려움을 야기 할 수 있습니다.

+0

수학에서 제로 인덱싱 (보통 제 경험 (3 학년 BSc))이 더 쉽습니다. –

+3

제로 기반 인덱싱이 수학적 산출물이라고 생각하지 않습니다. 모든 선형 대수학 책은 행/열의 번호를 매기 기 시작합니다. 1. FORTRAN의 기본값은 1입니다. 제로 기반 인덱싱은 C 및 포인터 연산의 유산이라고 생각합니다. – duffymo

+2

개인적으로, 나는 0 기반 색인 생성이 C 포인터 연산으로부터의 회피라고 생각합니다. 이것은 우리 모두의 불행에 붙어있는 것 같습니다. –

0

아마 JDBC가 ODBC에서 모델링 된 것입니다.

+0

둘 다 X/Open 인터페이스에서 모델링 한 것 같습니다. –

0

어쩌면 인간 친화적일까요? 또한 Java의 정규 표현식 Matcher 그룹은 첫 번째로 일치하는 그룹으로 1부터 시작합니다.

+1

전체 일치를 의미하는 0으로 정규 표현식의 표준입니다. – Eclipse

2

개인적으로 나는 나쁜 디자인으로 이것을 칠할 것입니다.

2

JDBC와 ODBC는 모두 X/Open Call Level Interface를 기반으로합니다. 따라서 0을 기준으로 한 월별 숫자와 같이 Java 이전의 기록입니다.

15

이것은 약자를 제거하기 위해 원어 디자이너가 만든 음모의 일부입니다. 원래 스펙에서 배열은 -1부터 번호가 매겨졌고 길이가 0 인 요소가 1 개 나열되었습니다.

오늘 자바 악성 캘린더 API 만이 악마 같은 음모로 남아 있습니다.