English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

دليل أساسي في Golang

تعليمات التحكم في Golang

الوظائف & الأساليب في Golang

المباني في Golang

القطع & الأنظمة العائلة في Golang

النصوص (String) في Golang

مؤشرات Golang

واجهات Golang

المتزامنة في Golang

استثناءات Golang (Error)

متنوعة أخرى في Golang

مؤشر إلى مؤشر في Go (مؤشران)

مؤشر هو متغير في لغة البرمجة Go، يستخدم لتخزين عنوان متغير آخر. مؤشر هو متغير خاص، لذا يمكنه أن يشير إلى أي نوع متغير. في الأساس، يبدو هذا مثل سلسلة من المؤشرات. عندما نحدد مؤشرًا يتجه إلى مؤشر، سيستخدم المؤشر الأول لتخزين عنوان المؤشر الثاني. هذا المفهوم يُدعى أحيانًامؤشران.

كيفية إعلان مؤشر يتجه إلى مؤشر في Golang؟
لإعلان مؤشر كـPointer كما يتم إعلان مؤشر في Go. الفرق هو أننا يجب أن نضع رمزًا إضافيًا قبل اسم مؤشر * عادة، عندما نستخدمكلمة المفتاح varعند إكمال عملية إعلان متغيرات النوع عند إكمال هذه العملية.

مثال 1:في البرنامج التالي، مؤشرpt2المخزنةpt1عنوان مؤشر. التدليلpt2بالمعنى أن* pt2سيتم تقديم المتغيرvعنوان المتغير، أو يمكنك أيضًا القول إلى مؤشرpt1القيمة. إذا حاولت** pt2،إذن سيتم تقديم المتغيرvالقيمة، أي 100.

package main
import "fmt"
func main() {
    //متغير من نوع integer
    var V int = 100
    //الحصول على إشارة
    //نوع integer
    var pt1 *int = &V
    //الحصول على الإشارة
    //عنوان الإشارة المحفوظة في pt1
    //تحويل pt1 إلى pt2
    var pt2 **int = &pt1
    fmt.Println("قيمة المتغير V = ", V)
    fmt.Println("عنوان المتغير V = ", &V)
    fmt.Println("قيمة pt1 = ", pt1)
    fmt.Println("عنوان pt1 = ", &pt1)
    fmt.Println("قيمة pt2 = ", pt2)
    //الاستدلال
    //الإشارة إلى الإشارة
    fmt.Println("عنوان pt2 = (*pt2) = ", *pt2)
    //الإشارات الثنائية تعطي قيمة المتغير V
    fmt.Println("*(القيمة في عنوان pt2) أو **pt2 = ", **pt2)
}

الإخراج:

قيمة المتغير V = 100
عنوان المتغير V = 0xc000062090
قيمة pt1 = 0xc000062090
عنوان pt1 = 0xc00008c018
قيمة pt2 = 0xc00008c018
عنوان pt2 = (*pt2) = 0xc000062090
*(القيمة في عنوان pt2) أو **pt2 = 100

مثال 2:لنقوم ببعض التغييرات في البرنامج أعلاه. من خلال استخدام التغيير بالاستدلال لتغيير قيمة الإشارة وتخصيص بعض القيم الجديدة لها كما يلي:

//لشرح مفهوم الإشارات إلى الإشارات في لغة Go
package main
import "fmt"
func main() {
    //تعريف متغير من نوع int
    var v int = 100
    //إشارة من نوع integer
    var pt1 *int = &v
    //الحصول على الإشارة
    //عنوان الإشارة المحفوظة في pt1
    //تحويل pt1 إلى pt2
    var pt2 **int = &pt1
    fmt.Println("قيمة المتغير v = ", v)
    //تغيير قيمة v من خلال الربط
    //القيمة الجديدة للإشارة pt1
    *pt1 = 200
    fmt.Println("القيمة المخزنة في v بعد تغيير pt1 = ", v)
    //تغيير قيمة v من خلال الربط
    //القيمة الجديدة للإشارة pt2
    **pt2 = 300
    fmt.Println("القيمة المخزنة في v بعد تغيير pt2 = ", v)
}

الإخراج:

قيمة المتغير v = 100
القيمة المخزنة في v بعد تغيير pt1 = 200
القيمة المخزنة في v بعد تغيير pt2 = 300

المعلومات ذات الصلة:الإشارة في Go