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

Golang تعليمات أساسية

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

Golang وظائف & طرق

Golang هيكل

Golang قطع & أعداد

Golang 字ائن (String)

Golang مراجع

Golang واجهات

Golang تعاملات

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

Golang غير متعلقة بالبرمجة

مقارنة الإشارة بلغة Go

في لغة Go، يُسمح بالمقارنة بين مراجعين. قيم المراجع تتساوي فقط إذا كانت تشير إلى نفس القيمة في ذاكرة أو إذا كانت nil. يمكنك مقارنة المراجع باستخدام ميزات == و != التي توفرها لغة Go:

1. ميزة ==:إذا كانت المراجعان تشير إلى نفس المتغير، فإن هذا الميزة تعود صحيحة. أو إذا كانت المراجعان تشير إلى متغيرين مختلفين، فإنها تعود خطأ.

النحو:

pointer_1 == pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //إنشاء وتحديد البوابة
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    //استخدام == علمية المقارنة
    res1 := &p1 == &p2
    fmt.Println("هل مؤشر p1 يساوي مؤشر p2: ", res1)
    res2 := p1 == p2
    fmt.Println("هل مؤشر p1 يساوي مؤشر p2: ", res2)
    res3 := p1 == p3
    fmt.Println("هل مؤشر p1 يساوي مؤشر p3: ", res3)
    res4 := p2 == p3
    fmt.Println("هل مؤشر p2 يساوي مؤشر p3: ", res4)
    res5 := &p3 == &p1
    fmt.Println("هل مؤشر p3 يساوي مؤشر p1: ", res5)
}

الناتج:

هل مؤشر p1 يساوي مؤشر p2:  خطأ
هل مؤشر p1 يساوي مؤشر p2:  خطأ
هل مؤشر p1 يساوي مؤشر p3:  صحيح
هل مؤشر p2 يساوي مؤشر p3:  خطأ
هل مؤشر p3 يساوي مؤشر p1:  خطأ

2. علمية !=إذا كان كلا المؤشرين يشيران إلى نفس المتغير، فإن هذا العمود يرجع إلى خطأ. أو إذا كان كلا المؤشرين يشيران إلى متغيرين مختلفين، فإنه يعود إلى صحيح.

النحو:

pointer_1 != pointer_2
package main
import "fmt"
func main() {
    val1 := 2345
    val2 := 567
    //إنشاء وتحديد البوابة
    var p1 *int
    p1 = &val1
    p2 := &val2
    p3 := &val1
    // استخدام != علمية المقارنة
    res1 := &p1 != &p2
    fmt.Println("هل مؤشر p1 غير متساوي مع مؤشر p2: ", res1)
    res2 := p1 != p2
    fmt.Println("هل مؤشر p1 غير متساوي مع مؤشر p2: ", res2)
    res3 := p1 != p3
    fmt.Println("هل مؤشر p1 غير متساوي مع مؤشر p3: ", res3)
    res4 := p2 != p3
    fmt.Println("هل مؤشر p2 غير متساوي مع مؤشر p3: ", res4)
    res5 := &p3 != &p1
    fmt.Println("هل مؤشر p3 غير متساوي مع مؤشر p1: ", res5)
}

الناتج:

هل مؤشر p1 غير متساوي مع مؤشر p2:  صحيح
هل مؤشر p1 غير متساوي مع مؤشر p2:  صحيح
هل مؤشر p1 غير متساوي مع مؤشر p3:  خطأ
هل مؤشر p2 غير متساوي مع مؤشر p3:  صحيح
هل مؤشر p3 غير متساوي مع مؤشر p1:  صحيح