النطاقات والتظليل
نطاق المتغير محدود بالكتلة المحيطة به.
يمكنك تظليل المتغيرات، سواء تلك من النطاقات الخارجية أو المتغيرات من نفس النطاق:
fn main() { let a = 10; println!("قبل: {a}"); { let a = "hello"; println!("النطاق الداخلي: {a}"); let a = true; println!("مظلل في النطاق الداخلي: {a}"); } println!("بعد: {a}"); }
- أظهر أن نطاق المتغير محدود عن طريق إضافة
b
في الكتلة الداخلية في المثال الأخير، ثم محاولة الوصول إليه خارج تلك الكتلة. - التظليل (Shadowing) يختلف عن التغيير (Mutation)، لأنه بعد التظليل، كلا موقعي ذاكرة المتغيرين موجودان في نفس الوقت. كلاهما متاحان تحت نفس الاسم، اعتمادًا على مكان استخدامه في الكود.
- المتغير المظلل (Shadowing) يمكن أن يكون له نوع مختلف.
- التظليل (Shadowing) يبدو غامضًا في البداية، لكنه مريح للاحتفاظ بالقيم بعد
.unwrap()
.