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

Golang Grundtutorials

Golang Steuerrichtlinien

Golang Funktion & Methode

Golang Struktur

Golang Slice & Array

Golang Zeichenkette (String)

Golang Zeiger

Golang Schnittstelle

Golang Parallelität

Golang Fehler (Error)

Andere Golang-Bereiche

Go Sprache Mehrere Schnittstellen

In der Programmiersprache Go sind Schnittstellen eine Sammlung von Methodensignaturen und auch ein Typ, was bedeutet, dass Sie Variablen des Schnittstellen-Typs erstellen können. In der Programmiersprache Go können Sie mehrere Schnittstellen mithilfe der folgenden Syntax in Ihrem Programm erstellen:

type interface_name interface{
//Methodensignatur
}

Hinweis:In der Programmiersprache Go ist es nicht erlaubt, in zwei oder mehreren Schnittstellen denselben Namen für eine Methode zu verwenden. Wenn Sie dies tun, wird Ihr Programm abstürzen. Lassen Sie uns mit einem Beispiel diskutieren, wie man mehrere Schnittstellen behandelt.

//Konzept mehrerer Schnittstellen
package main
import "fmt"
// Schnittstelle 1
type AuthorDetails interface {
    details()
}
// Schnittstelle 2
type AuthorArticles interface {
    articles()
}
// Strukturkategorie
type Author struct {
    a_name
    branch
    college
    jahr int
    salary int
    particles int
    tarticles int
}
//Implementierung der Interface-Methode1
func (a author) details() {
    fmt.Printf("Autor: %s", a.a_name)
    fmt.Printf("\nAbteilung: %s durch Datum: %d", a.branch, a.year)
    fmt.Printf("\nSchulname: %s", a.college)
    fmt.Printf("\nGehalt: %d", a.salary)
    fmt.Printf("\nVeröffentlichte Artikelzahl: %d", a.particles)
}
// Implementierung der Interface-Methode 2
func (a author) articles() {
    pendingarticles := a.tarticles - a.particles
    fmt.Printf("\nBereitschaftliche Artikel: %d", pendingarticles)
}
// Hauptwert
func main() {
    //Strukturzuweisung
    values := author{
        a_name: "Mickey",
        abteilung: "Computer science",
        kolleg: "XYZ",
        jahr:      2012,
        salary:    50000,
        particles: 209,
        tarticles: 309,
    }
    // Zugriff über das Interface1Methoden
    var i1 AuthorDetails = values
    i1.details()
    //Zugriff über das Interface2Methoden
    var i2 AuthorArticles = values
    i2.articles()
}

Ausgabe:

Autor: Mickey
Abteilung: Computer science durch Datum: 2012
Schulname: XYZ
Gehalt: 50000
Veröffentlichte Artikelzahl: 209
Bereitschaftliche Artikel: 100

Verwendungshinweis:Wie im obigen Beispiel gezeigt, gibt es zwei Interfaces mit Methoden, nämlich details() und Articles(). Hier bietet die details()-Methode die grundlegenden Details des Autors an, während die articles()-Methode die noch nicht veröffentlichten Artikel des Autors bereitstellt.

Es gibt noch eine als Autor (Author) bezeichnete Struktur, die einige Variablensammlungen enthält, deren Werte im Interface verwendet werden. In den Hauptmethoden zuweisen wir die Werte der existierenden Variablen in der Autorstruktur, damit sie im Interface verwendet werden können und erstellen Interface-Typvariablen, um darauf zuzugreifenAuthorDetailsundAuthorArticlesDie Methoden der Schnittstelle.