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

دليل أساسي Golang

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

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

هياكل Golang

قطع & مصفوفات Golang

مفاتيح نصية Golang (String)

مراجع Golang

واجهات Golang

المساهمة في Golang

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

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

مقارنة النوع struct في Go

هيكل Golang أو struct هو نوع مستخدم من قبل المستخدم، وهو يسمح لنا بإنشاء مجموعة من عناصر مختلفة في وحدة واحدة. يمكن تمثيل أي كيان حقيقي يمتلك مجموعة من الخصائص أو الحقول كهيكل. يتم مقارنة هذا المفهوم عادةً مع الفئات في البرمجة المتنوعة. يمكن تسميته فئة خفيفة، لأنه لا يدعم الوراثة، لكنه يدعم التجميع.

في لغة Go، يمكن استخدامعنصر ==أوطريقة DeeplyEqual()مقارنة بين نوعين بنفس الهيكل والحقول القيم. إذا كانت الهياكل متطابقة (من حيث القيم الحقلية)، فإن العناصر والأساليب تعود بالصح

ملاحظة:

طريقة DeeplyEqual() معرفة في حزمة "reflect".

مقارنة هيكلين باستخدام عمودية ==
//مفهوم تطابق الهيكل
package main
//استخدام عمودية ==
//إنشاء هيكل
type Author struct {
    name           string
    branch         string
    language     string
    Particles int
}
func main() {
    
    //هيكل الكاتب
    a1 := Author{
        
        
        language:     \
        Particles:     38,
    }
    
        
        
        language:     \
        Particles:     38,
    }
    
        
        
        language:     \
        Particles:     38,
    }
    //استخدام عمودية == لتحقق من تطابق a1 مع a2
    if a1 == a2 {
        fmt.Println("متغير a1 يساوي متغير a2")
    }
        fmt.Println("متغير a1 لا يساوي متغير a2")
    }
    if a2 == a3 {
        fmt.Println("متغير a2 يساوي متغير a3")
    }
        fmt.Println("متغير a2 لا يساوي متغير a3")
    }
}

الإخراج:

متغير a1 يساوي متغير a2
متغير a2 لا يساوي متغير a3

مقارنة هيكلين باستخدام طريقة DeepEqual()

//استخدام طريقة DeepEqual()
package main
import (
    "fmt"
    "reflect"
}
//إنشاء هيكل
type Author struct {
    name           string
    branch         string
    language     string
    Particles int
}
func main() {
    //تعريف المتغيرات
    //هيكل الكاتب
    a1 := Author{
        name:           \
        
        language:     \
        Particles:     48,
    }
    
        name:           \
        
        language:     \
        Particles:     48,
    }
    
        
        
        language:     \
        Particles:     48,
    }
    //مقارنة a1 و a2 باستخدام طريقة DeepEqual()
    fmt.Println("هل a1 يساوي a2: ", reflect.DeepEqual(a1, a2))
    //مقارنة a2 و a3 باستخدام طريقة DeepEqual()
    fmt.Println("هل a2 يساوي a3: ", reflect.DeepEqual(a2, a3))
}

الإخراج:

هل a1 يساوي a2:     صحيح
هل a2 تساوي a3: false