يسمح تمرير المؤشرات إلى الوظائف بتعديل القيم التي تشير إليها. ومع ذلك، فإنه يتطلب فهم الأعمال الداخلية للمؤشرات لتنفيذ هذه العملية بشكل صحيح.
لتعديل القيمة التي يشير إليها المؤشر، من الضروري إلغاء الإشارة إلى المؤشر. في Go، يتم استخدام عامل النجمة (*) لهذا الغرض. من خلال إلغاء الإشارة إلى المؤشر، يمكنك الوصول إلى القيمة الأساسية التي يشير إليها.
الفرق الرئيسي هو بين تغيير قيمة المؤشر وتغيير القيمة التي يحددها. يشير إلى. يؤدي تعيين قيمة جديدة لمتغير المؤشر إلى تغيير العنوان الذي يخزنه فقط. على سبيل المثال، لا يقوم مقتطف الشفرة أدناه بتعديل القيمة المشار إليها:
func f(p *Test) {
p = &Test{4}
}
لتعديل القيمة المشار إليها، من الضروري استخدام عامل إلغاء المرجعية. يمكن القيام بذلك بشكل صريح أو ضمني.
إلغاء المرجع الصريح:
func f(p *Test) {
*p = Test{4}
}
إلغاء الإسناد الضمني:
func f(p *Test) {
p.Value = 4
}
في كلتا الحالتين، يتم تغيير القيمة التي يشير إليها p.تعديل المؤشر إلى المؤشرتمرير المؤشر إلى المؤشر (*اختبار) يسمح بتعديل قيمة المؤشر المخزنة في الوظيفة الرئيسية. ومع ذلك، فإنه لن يغير القيمة التي يشير إليها المؤشر الأصلي.func f(p **Test) {
*p = &Test{4}
}
باختصار، عند تمرير المؤشرات إلى الوظائف، من المهم فهم الفرق بين تعديل قيمة المؤشر وتعديل القيمة التي يشير إليها. تعد مؤشرات إلغاء الإشارة ضرورية لتنفيذ العملية الأخيرة، مما يتيح إجراء تعديلات على قيم البيانات الأساسية. تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.
Copyright© 2022 湘ICP备2022001581号-3