-
Title:
-
Description:
-
حتى الآن، لقد أخبرتكم أن التعيين
-
يُعدل العنصر الموجود
-
لكن لا يمكنكم رؤية الإختلاف فيما
قمنا به مع السلاسل
-
نحن سوف نرى الإختلاف حقاً
عندما نقدم متغير جديد
-
هيا لنعد إلى المثال الذي كان لدينا سابقاً
-
والأن سنضيف سلسلة معينة جديدة
-
وسنُعرف متغير جديد
-
فلنفترض أننا عرفنا المتغير "q"
-
والأن نحن سنعين المتغير"p" إلى
المتغير "q"، وهذا يعني قيمة p
-
والذي سوف يشير إلي العنصر التي
-
تشير إليه هذه القائمة.
-
الشيء المهم هنا بعد التعيين
-
أن "p" و"q" تشير إلى نفس القائمة.
-
فلنفترض أننا قمنا بتعيين سلسلة
-
لكي نُعدل قيمة إحدى عناصر "q".
-
حسناً، هذا سوف يُغير العنصر الرابع من "q"
-
إذا هذا هو العنصر الرابع من "q".
-
سوف يغيير هذه القيمة
-
إلي علامة تعجب جديدة.
-
وقام أيضاً بتغيير قيمة "p".
-
حتى ولم تتضمن تعيين السلسلة المتغير "p"
-
الحقيقة أن المتغير "p" و "q"
يشيران إلى نفس العنصر
-
بمعنى أنه غير قيمة "p" أيضاً.
-
لنريك أن هذه الأشياء مختلفة
مع السلاسل
-
لنجرب ذلك مع سلسلة
-
أنظر إذا كنت سوف تتوقع ما يحدث
عندما نحاول إستخدام التعيين
-
لإستبدال الحرف الأول في السلسة
-
لنشغله ونرى ماذا سوف يحدث.
-
وما سوف نحصل عليه هو خطأ
-
ونحصل على هذا الخطاً
لأن السلسلة غير قابلة للتغيير
-
ليس هناك طريقة لتغيير قيمة هذه السلسة
-
والخطأ يقول أنه لا يوجد طريقة
لكي نقوم بالتعيين في السلسلة
-
إن هذا النوع من العناصر،
بسبب أنه لا يقبل التغيير لا يدعم التعيين.
-
الفرق الرئيسي بين العناصر
التي تقبل والتي لاتقبل التعيين
-
هو أنه عندما يصبح عنصر ما قابل للتغيير
-
علينا إذاً أن نقلق بشأن المتغيرات الأخري
والتي من الممكن أن تشير إلى نفس العنصر.
-
يمكننا تغير قيمة هذا العنصر
-
وهذا لا يؤثر فقط على المتغير
الذي نعتقد أننا قمنا بتغييره
-
لكن يؤثر أيضاً علي قيمة
المتغيرات الأخري أيضاً
-
لنلقي نظرة علي مثال عن هذا الأمر
-
لقد قمت بتعيين المتغير "p" إلي القائمة
التي تحتوي على سلسلة "Hello".
-
لدي الآن تعيين جديد يقدم
المتغير الجديد "q"
-
ويعين المتغير "p" إالي هذا المتغير الجديد
-
والأن سوف نقوم بطباعة قيمة كل من "p" و "q"
-
وسوف نرى أن قيمة كل من "p" و "q"
تحتوي على السلسلة "Hello".
-
ولكن الآن لنغير القيمة عند الموضع 0
-
لدي الآن تعيين والذي يخزن
-
الحرف "y" في قيمة الموضع 0 من المتغير "p"
-
هذا يغير قيمة المتغير "p"
-
والذي يبدو مدهشاً أكثر أنه
يغيير أيضاً قيمة "q"
-
علي الرغم أننا لم نشير إلي
المتغير "q" في التعيين
-
لقد تم تغيير قيمة المتغير "q" لآن "q"
-
تشير إلي نفس العنصر
الذي يشير إليه المتغير "p".