في JDBC، لماذا فهارس المعلمة عبارات المعدة تبدأ في 1 بدلا من 0؟

StackOverflow https://stackoverflow.com/questions/616135

سؤال

وفي كل مكان آخر في جاوة، أي شيء مع فهرس يبدأ في 0. هل هناك سبب لهذا التغيير هنا أم أن هذا مجرد تصميم سيئة؟

هل كانت مفيدة؟

المحلول

وتاريخيا، استخدمت قواعد بيانات الفهرسة المستندة إلى 1 لمعلمات المربوطة. وهذا ربما يعكس أصول قواعد البيانات العلائقية في نظرية المجموعات والرياضيات، والذي عناصر مؤشر تبدأ مع واحد، واستخدام الصفر لتمثيل مجموعة خالية أو فارغة.

في البرامج النصية قذيفة والتعابير العادية، يعني مؤشر الصفر عادة شيء "خاص". على سبيل المثال، في حالة البرامج النصية قذيفة، والصفري "حجة" هو في الواقع الأمر الذي تم استدعاء.

وكان اختيار لJDBC متعمد ولكن، في نهاية المطاف، وربما يسبب المزيد من الارتباك وصعوبة أكثر مما يحل.

نصائح أخرى

وكان هذا جزءا من مؤامرة من قبل المصممين باللغة الأصلية للتخلص من الضعفاء. في المواصفات الأصلية، باتت معدودة صفائف من -1، وقوائم مع 1 عنصر عاد طول = 0.

واليوم، لا يزال فقط API جافا التقويم من هذه المؤامرة الشيطانية.

وأنا شخصيا أود أن الطباشير هذا يصل إلى التصميم السيئ.

وأنا أفهم تستند على حد سواء JDBC وODBC على واجهة مستوى استدعاء X / فتح. لذلك، فإنه قبل جافا التاريخ، مثل أرقام شهر بناء 0.

ومن المحتمل فهو أن JDBC وعلى غرار ODBC.

وأكثر إنسانية ودية ربما؟ أيضا، تبدأ مجموعة جاوة التعبير العادية المنظر مع 1 كمجموعة المتطابقة الأولى.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top