English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
في لغة Go، الواجهة هي مجموعة من إشارات التوقيع، وهي أيضًا نوع، مما يعني أنه يمكنك إنشاء متغيرات نوع واجهة. يمكنك استخدام الجملة التالية في لغة Go لإنشاء واجهات متعددة في برنامجك:
type interface_name interface{ //إشارة التوقيع }
ملاحظة:في لغة Go، لا يُسمح بإنشاء نفس الاسم للمتغير في بين أو أكثر من واجهات. إذا حاولت القيام بذلك، فإن برنامجك سي崩溃. دعونا نستخدم مثالاً لمناقشة واجهات متعددة.
//多个接口的概念 package main import "fmt" // 接口 1 type AuthorDetails interface { details() } // 接口 2 type AuthorArticles interface { articles() } // 结构体 type author struct { a_name string branch string college string year int salary int particles int tarticles int } //实现接口方法1 func (a author) details() {} fmt.Printf("المؤلف: %s", a.a_name) fmt.Printf("\nالقسم: %s من خلال التاريخ: %d", a.branch, a.year) fmt.Printf("\nاسم الجامعة: %s", a.college) fmt.Printf("\nالراتب: %d", a.salary) fmt.Printf("\nعدد المقالات المنشورة: %d", a.particles) } //تحقيق طريقة واجهة 2 func (a author) articles() { pendingarticles := a.tarticles - a.particles fmt.Printf("\nالمقالات المزمع نشرها: %d", pendingarticles) } //قيمة رئيسية func main() { //تخصيص هيكل values := author{ a_name: "Mickey", branch: "Computer science", college: "XYZ", year: 2012, salary: 50000, particles: 209, tarticles: 309, } //وصول باستخدام واجهة 1 var i1 AuthorDetails = values i1.details() //وصول باستخدام واجهة 2 var i2 AuthorArticles = values i2.articles() }
الخروج:
المؤلف: Mickey القسم: علم الحاسوب من خلال التاريخ: 2012 اسم الجامعة: XYZ الراتب: 50000 عدد المقالات المنشورة: 209 المقالات المزمع نشرها: 100
شرح الاستخدام:كما هو موضح في المثال السابق، لدينا واجهتان بهما طرق، أي details() و Articles(). هنا، يقدم طريقة details() تفاصيل المؤلف الأساسية، بينما تقدم طريقة articles() المقالات المزمع نشرها للمؤلف.
هناك أيضًا هيكل يُدعى 作者 (Author) يحتوي على مجموعة من المتغيرات، القيم التي تُستخدم في واجهة. في الأساليب الرئيسية، نُسند القيم الموجودة في هيكل المؤلف لكي يتم استخدامها في واجهة وتُنشأ واجهة نوعية لزيارةAuthorDetailsوAuthorArticlesطريقة الواجهة.