English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
لغة البرمجة Goالمرجع هو متغير يستخدم لتخزين عنوان ذاكرة متغير آخر. يمكنك أيضًا إرسال المرجع مثلمتغيرتمثل المرجع المتغير، وهو متغير يستخدم لتخزين عنوان ذاكرة متغير آخر. يمكنك أيضًا إرسال المرجع مثل
إنشاء مرجع وإرساله إلى الدالة
إرسال عنوان الذاكرة للمتغير
في البرنامج التالي، نستخدم الدالةptf، وتكون الدالة لها معامل نوع مرجع، مما يعني أن الدالة تقبل فقط معاملات نوع مرجع. كما تغير الدالة المتغيرxفي البداية،xيحتوي على القيمة 100. ولكن بعد استدعاء الدالة، يتم تغيير القيمة إلى 748، كما هو موضح في الإخراج.
// يخلق برنامج Go مرجعًا // وإرساله إلى الدالة package main import "fmt" // قبول المرجع كمعامل func ptf(a *int) { // التشغيل *a = 748 } func main() { // متغير عادي var x = 100 fmt.Printf("قيمة x قبل استدعاء الدالة هي: %d\n", x) // الحصول على متغير مرجع // وتخصيص العنوان var pa *int = &x // باستخدام الطريقة التالية استدعاء الدالة // إرسال المرجع إلى الدالة ptf(pa) fmt.Printf("قيمة x بعد استدعاء الدالة هي: %d\n", x) }
الإخراج:
قيمة x قبل استدعاء الدالة هي: 100 قيمة x بعد استدعاء الدالة هي: 748
تأمل في البرنامج التالي، لم نقم بإنشاء مرجع لتخزين المتغيرxالعنوان، وهو العنوان المذكور في البرنامج أعلاهpaنحن نقوم بتحويلxالعنوان يُرسل إلى الدالة الاستدعاء، والتي تشبه الطريقة المذكورة أعلاه.
package main import "fmt" // مرجع نوع int كمعامل func ptf(a *int) { *a = 748 } func main() { var x = 100 fmt.Printf("قيمة x قبل استدعاء الدالة هي: %d\n", x) // من خلال استدعاء الدالة // إرسال العنوان // متغير x ptf(&x) fmt.Printf("قيمة x بعد استدعاء الدالة هي: %d\n", x) }
الإخراج:
قيمة x قبل استدعاء الدالة هي: 100 قيمة x بعد استدعاء الدالة هي: 748
الاشارة:يمكنك أيضًا استخدام عمود التفاضل (:=) في البرنامج المذكور أعلاه لإعلان المتغيرات والمراجع.