قدم Bjarne Stroustrup دلالات النقل في C 11 لتحسين نقل البيانات عن طريق القضاء على النسخ غير الضروري. هذه التقنية مفيدة بشكل خاص عند التعامل مع هياكل البيانات الكبيرة.
على عكس لغة C، لا يدعم Golang بشكل صريح دلالات النقل بنفس الطريقة. ومع ذلك، يستخدم Go نهجًا فريدًا يحقق نتائج مماثلة من خلال أنواع المراجع المضمنة فيه.
تحافظ Go على مبدأ تمرير كل شيء حسب القيمة، بما في ذلك أنواع المراجع. أنواع المراجع هي أنواع Go مضمنة تحتوي داخليًا على مراجع لهياكل بيانات منفصلة. أنواع المراجع الخمسة المضمنة هي:
عند تمرير أو تعيين نوع مرجع، يتم نسخ المرجع (المؤشر) فقط، وليس البيانات الأساسية. يُعرف هذا باسم دلالات المرجع.
في Go، يمكنك إنشاء نوع المرجع الخاص بك عن طريق تضمين مؤشر إلى بنية بيانات أكثر تعقيدًا في تعريف النوع المخصص الخاص بك. على سبيل المثال:
type MyMap struct { impl *map[int]string }
الآن، عند إنشاء مثيل لـ MyMap وتعيينه لمتغير آخر، يتم نسخ المؤشر إلى الخريطة الأساسية فقط.
While Go لا تنفيذ دلالات النقل على النمط C مباشرة، وتوفر أنواعها المرجعية فوائد أداء مماثلة من خلال السماح لك بتجنب النسخ غير الضروري لهياكل البيانات الكبيرة. من خلال فهم مفهوم الدلالات المرجعية، يمكنك تحسين كود Go الخاص بك وتحسين أدائه.
تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3