2009-03-05 6 views
29

जावा में कहीं और, इंडेक्स वाला कुछ भी 0 से शुरू होता है। क्या यहां बदलाव का कोई कारण है या यह सिर्फ खराब डिज़ाइन है?जेडीबीसी में, तैयार बयानों के लिए पैरामीटर इंडेक्स 0 के बजाय 1 पर क्यों शुरू होते हैं?

+3

मैं वही बात सोच रहा था, खासकर जब परिणामसेट्स 1-अनुक्रमित भी हैं। – Uri

उत्तर

36

ऐतिहासिक रूप से, डेटाबेस ने बाध्य पैरामीटर के लिए 1-आधारित अनुक्रमण का उपयोग किया है। यह शायद सेट सिद्धांत और गणित में संबंधपरक डेटाबेस की उत्पत्ति को दर्शाता है, जो एक के साथ शुरू होने वाले इंडेक्स तत्व, और शून्य या खाली सेट का प्रतिनिधित्व करने के लिए शून्य का उपयोग करते हैं।

शैल स्क्रिप्ट और नियमित अभिव्यक्तियों में, शून्य सूचकांक आमतौर पर कुछ "विशेष" का अर्थ है। उदाहरण के लिए, खोल स्क्रिप्ट के मामले में, शून्य "तर्क" वास्तव में वह आदेश होता है जिसे बुलाया गया था।

जेडीबीसी के लिए विकल्प जानबूझकर था, लेकिन आखिरकार, इससे अधिक भ्रम और समस्या हल हो जाती है।

+0

गणित में शून्य-अनुक्रमण (आमतौर पर मेरे अनुभव (तीसरे वर्ग बीएससी) में जाना आसान होता है)। –

+3

मुझे नहीं लगता कि शून्य-आधारित अनुक्रमण एक गणितीय आर्टिफैक्ट है। प्रत्येक रैखिक बीजगणित पुस्तक मैंने पंक्तियों/स्तंभों को क्रमांकित करना शुरू कर दिया है 1. अगर मैं सही से याद करता हूं तो फ़ोरट्रान डिफ़ॉल्ट 1 से चूक जाता है। मुझे लगता है कि शून्य-आधारित इंडेक्सिंग सी और पॉइंटर अंकगणित से विरासत है। – duffymo

+2

व्यक्तिगत रूप से, मुझे लगता है कि 0-आधारित इंडेक्सिंग सी पॉइंटर अंकगणित से एक फेंकना है जो कि हम सभी की दुर्भाग्य से अटक गया है। –

0

संभावना है कि जेडीबीसी को ओडीबीसी पर मॉडलिंग किया गया था।

+0

मुझे लगता है कि दोनों को एक्स/ओपन इंटरफेस पर मॉडलिंग किया गया था। –

0

अधिक मानव दोस्ताना शायद? इसके अलावा, जावा की नियमित अभिव्यक्ति माचर का समूह पहले मिलान वाले समूह के रूप में 1 से शुरू होता है।

+1

यह नियमित अभिव्यक्तियों के साथ मानक है क्योंकि 0 का उपयोग पूरे मैच के लिए किया जाता है। – Eclipse

2

व्यक्तिगत रूप से मैं इसे खराब डिजाइन के लिए तैयार करूंगा।

2

मैं समझता हूं कि जेडीबीसी और ओडीबीसी दोनों एक्स/ओपन कॉल लेवल इंटरफेस पर आधारित हैं। तो, यह पूर्व-जावा इतिहास है, जैसे 0-आधारित महीनों की संख्या।

15

यह मूल भाषा डिजाइनरों द्वारा कमजोर लोगों को कम करने के लिए एक साजिश का हिस्सा था। मूल spec में, सरणी -1 से गिने गए थे, और 1 तत्व के साथ सूची लंबाई = 0 लौटा दी।

आज, केवल जावा कैलेंडर एपीआई इस शैक्षिक साजिश से बनी हुई है।

संबंधित मुद्दे