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

دليل أساسي بلغة Golang

تعليمات التحكم بلغة Golang

وظائف وطرق بلغة Golang

بنية بلغة Golang

قطع وعدد بلغة Golang

كلمات بلغة Golang (String)

مؤشرات بلغة Golang

واجهات بلغة Golang

المتزامنة بلغة Golang

استثناءات بلغة Golang (Error)

مشاريع أخرى بلغة Golang

واجهات متعددة بلغة Go

في لغة 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طريقة الواجهة.