لماذا تمنع Pascal نفس اسم المعرف لمعلمة Method وعضو بيانات الفئة؟
-
20-09-2019 - |
سؤال
type
TPerson = class(TObject)
name : string;
constructor create(name : string);
end;
سيؤدي إلى خطأ في برنامج التحويل البرمجي.
أعتقد أ self
أو this
المؤشر/المرجع جيد بما فيه الكفاية ، لوضوحه. إذن ، ما هي مزايا القيام بذلك؟
تعديل: سؤال آخر ، هل يمكنك إظهار ما هي اللغات الأخرى التي تنشر هذه السياسة؟
المحلول
لمنع الاشتباكات الاسم حيث سيظل اسم المعلمة ظل عضو الفصل. لا يمكن أن يحدث بهذه الطريقة وكل اسم لا لبس فيه.
تذكر أن باسكال هو أ لغة العبودية والانضباط; ؛ تم تصميم تلك لمحاولة منع الأخطاء الشائعة.
خيار آخر لمنع المشكلة المتصورة هو ما يفعله Python: تفويض مؤهل أعضاء المثال this
أو self
حتى يتسنى لك لديك ببادئة كل حالة وصول عضو مع self
.
لا أعرف أي لغة أخرى بهذا التقييد. لكن بعض ميزات اللغة فريدة من نوعها بالفعل ؛ الاستثناءات التي تم فحصها على سبيل المثال هي أيضًا.
لا تنتمي إلى StackOverflow