English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
هيكل Golang أو struct هو نوع مستخدم من قبل المستخدم، وهو يسمح لنا بإنشاء مجموعة من عناصر مختلفة في وحدة واحدة. يمكن تمثيل أي كيان حقيقي يمتلك مجموعة من الخصائص أو الحقول كهيكل. يتم مقارنة هذا المفهوم عادةً مع الفئات في البرمجة المتنوعة. يمكن تسميته فئة خفيفة، لأنه لا يدعم الوراثة، لكنه يدعم التجميع.
في لغة Go، يمكن استخدامعنصر ==أوطريقة DeeplyEqual()مقارنة بين نوعين بنفس الهيكل والحقول القيم. إذا كانت الهياكل متطابقة (من حيث القيم الحقلية)، فإن العناصر والأساليب تعود بالصح
ملاحظة:
مقارنة هيكلين باستخدام عمودية == //مفهوم تطابق الهيكل 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() 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