"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > اذهب للشرائح مقابل الخرائط: لماذا تتصرف الإلحاحات بشكل مختلف؟

اذهب للشرائح مقابل الخرائط: لماذا تتصرف الإلحاحات بشكل مختلف؟

نشر في 2025-03-24
تصفح:210

Go Slices vs. Maps: Why Do Appends Behave Differently?

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

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

أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3