سؤال

الملفات والدلائل يمكن أن مساحات مختلفة و لا تزال تستخدم لتحديد ملفات معينة ، لأن الملف و الدليل مع نفس الاسم يمكن تمييزها من خلال كونها أنواع مختلفة من الأشياء.

بدائية المجال المرجعي المجالات يمكن أن يكون أيضا مساحات مختلفة (Java), لأنه إذا كان البدائية إشارة حقل بنفس الاسم ، يمكن التعرف عليهم من خلال كونها أنواع مختلفة من الأشياء.

منفصلة مساحات تستخدم في أي مكان آخر مثل هذا.على سبيل المثال ، في جافا, هل يمكن أن يكون طريقة exampleName() و حقل exampleName, و على الرغم من أن لديهم نفس الاسم ، فهي تتميز كونها أنواع مختلفة من الأشياء.

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

المحلول

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

بالإضافة إلى ذلك، النظر في ارتباك المستخدم النهائي الذي قد ينشأ. لدينا حاليا نوع من Namespacing متوفر في نظام الملفات باستخدام ملحقات الملفات. يمكنك الحصول على file.txt و file.dll و file.exe كل موجود في نفس الدليل. ما يحدث عندما تكون هذه الملفات موجودة في وقت واحد مسألة مصدر قلق - كانت هذه طريقة واحدة لكتاب الفيروسات لاستخدام شكل من أشكال الهندسة الاجتماعية لتحملك للنقر فوق الملف الخطأ. تخيل إذا كنت تستطيع الخلط بين دليل مع ملف من نفس الاسم كذلك؟

نصائح أخرى

أولا، هذا السؤال هو لغة محددة. في لغات OOP النقية، لا يوجد تمييز بين العناصر الذرية والمركبة. كل شيء كائن. من خلال سبب مشابه في لغة وظيفية خالصة، لا يمكنك الحصول على وظيفة ومتغير يدعى نفسه.

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

cp foo bar

يعمل CP على الملفات والأغوال، وإذا كان لديك مساحات أسماء مختلفة، فلا توجد طريقة لإخبار ما الذي تعنيه.

الدلائل والملفات ليست بالضرورة مختلفة جدا.كلاهما الإدخالات في الدليل الأصل فقط مع العلم لبيان ما إذا كان إدخال دليل أو لا.يمكنك فتح دليل وقراءتها كما لو كان الملف فقط أن بعض عمليات أخرى ممكنة على ذلك - رمزية الروابط تعمل بنفس الطريقة.(هذا الوصف هو منحازة إلى Unix نظام الملفات الرأي ، ولكن أعتقد DOS/Windows عرض يعمل بنفس الطريقة).داخل أي دليل ، هناك مجموعة من الأسماء من أعضاء الملفات يفرض تفرد القيد أن الدليل يمكن أن يكون واحد فقط الأعضاء مع اسم معين.

التفكير في طريقة جافا أسماء مقارنة مع أسماء الحقول--- مرة أخرى في ج لم يكن لديك وظيفة العالمية و عالمي متغير يحمل نفس الاسم ، لأن كل الرموز في ملف الكائن في مساحة اسم واحد.ولكن هل يمكن مع C++, لأن وظيفة "الفراغ فو()" تم تعيينها إلى المهترئ رمز اسم ("فو__vv" أو شيء من هذا).لذلك ليس لديهم منفصلة مساحة ، كما أن المفتاح في مساحة مختلفة عن مجال "فو" مقابل طريقة "فو()".بالنظر إلى أن كنت لا يمكن الحصول على مفتاح الاشتباكات ، فإنها تبدو مثل مساحات منفصلة ، ولكن هل هذا حقا كيف تنفذ ؟

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