Heim > Backend-Entwicklung > Golang > Golang-Schnittstellenabfrage

Golang-Schnittstellenabfrage

王林
Freigeben: 2023-05-21 14:56:38
Original
563 Leute haben es durchsucht

Golang, auch bekannt als Go-Sprache, ist eine kompilierte Open-Source-Programmiersprache auf Systemebene. Im Vergleich zu anderen Programmiersprachen weist Golang eine höhere Parallelität und eine höhere Speichersicherheit auf und wird daher häufig in Internetanwendungen verwendet. In Golang ist die Schnittstelle ein sehr wichtiges Konzept, sie ist der Kernmechanismus zur Erzielung von Polymorphismus. In diesem Artikel wird der relevante Inhalt der Schnittstellenabfrage in Golang vorgestellt.

1. Erste Einführung in Schnittstellen

  1. Das Konzept der Schnittstelle

In Golang ist Schnittstelle ein Typ, Es definiert die Verhaltensspezifikation des Objekts, das heißt, es gibt an, welche Methoden das Objekt haben soll. Eine Schnittstelle ist ein abstraktes Konzept, das selbst keine praktische Bedeutung hat. Es definiert lediglich eine Reihe von Methoden, die von dem Typ implementiert werden, der die Schnittstelle implementiert. In Golang muss der Typ, der die Schnittstelle implementiert, alle in der Schnittstelle definierten Methoden implementieren, da sonst Kompilierungsfehler auftreten.

  1. Die Rolle der Schnittstelle

Schnittstelle ist der Mechanismus zum Erreichen von Polymorphismus in Golang. Durch die Verwendung von Schnittstellen können Objekte unterschiedlichen Typs als derselbe Typ behandelt werden, wodurch eine einheitliche Verarbeitung von Objekten erreicht wird. In Golang können Schnittstellen auch zur Implementierung von Funktionen wie Abhängigkeitsinjektion und Typkonvertierung verwendet werden.

  1. Definition der Schnittstelle

In Golang können Sie das Schlüsselwort type verwenden, um einen Schnittstellentyp zu definieren. Die Schnittstelle ist wie folgt definiert:

type interface_name interface {
    method_name1(parameters_list) return_value_list
    method_name2(parameters_list) return_value_list
    ...
}
Nach dem Login kopieren

In der Schnittstellendefinition besteht jede Methode aus einem Methodennamen, einer Parameterliste und einer Rückgabewertliste. Darunter können die Parameterliste und die Rückgabewertliste mehrere Parameter sein. Wenn die Methode keinen Rückgabewert hat, kann die Rückgabewertliste weggelassen werden.

2. Schnittstellenabfrage

  1. Das Konzept der Schnittstellenabfrage

Schnittstellenabfrage bezieht sich auf die Beurteilung, ob das Objekt vorhanden ist implementiert eine Schnittstelle und wie die Methoden des Objekts verwendet werden. In Golang können Sie Typzusicherungen und Typbeurteilungen verwenden, um Schnittstellenabfragen durchzuführen.

  1. Typzusicherung

Typzusicherung bezieht sich auf die Bestimmung, ob ein Objekt von einem bestimmten Typ ist, wenn das Programm ausgeführt wird, und auf die Konvertierung in diesen Typ . In Golang können Sie die folgende Methode zur Typzusicherung verwenden:

value, ok := object.(type_name)
Nach dem Login kopieren

wobei „object“ das Objekt darstellt, das typisiert werden muss, und „type_name“ den Typ darstellt, der konvertiert werden muss. Wenn „object“ ein Objekt vom Typ „type_name“ ist, stellt „value“ das konvertierte Objekt dar und „ok“ ist wahr; andernfalls ist „value“ Null und „ok“ ist false.

  1. Typbeurteilung

Typbeurteilung bezieht sich auf die Beurteilung, ob ein Objekt eine bestimmte Schnittstelle implementiert, wenn das Programm ausgeführt wird. In Golang können Sie die folgende Methode zur Typbeurteilung verwenden:

_, ok := object.(interface_name)
Nach dem Login kopieren

Unter diesen stellt „object“ das Objekt dar, das beurteilt werden muss, und „interface_name“ stellt die Schnittstelle dar, die implementiert werden muss. Wenn das Objekt die Schnittstelle interface_name implementiert, ist ok wahr, andernfalls ist ok falsch.

3. Beispieldemonstration

Im Folgenden wird die Verwendung einer Schnittstellenabfrage anhand eines Beispiels demonstriert.

  1. Erstellen Sie eine Schnittstelle

Zuerst müssen wir eine Schnittstelle Tier erstellen, um die Verhaltensspezifikationen von Tieren zu definieren. Die Definition der Tierschnittstelle lautet wie folgt:

type Animal interface {
    Eat(food string) string
    Sleep() string
}
Nach dem Login kopieren

In der Tierschnittstelle sind zwei Methoden „Essen“ und „Schlafen“ definiert, um das Verhalten von Tieren beim Fressen und Schlafen darzustellen.

  1. Implementierungsklassen erstellen

Als nächstes müssen wir zwei Implementierungsklassen Cat und Dog erstellen, um die in der Animal-Schnittstelle definierten Methoden zu implementieren. Die Klassen Cat und Dog sind wie folgt definiert:

type Cat struct{}

func (c *Cat) Eat(food string) string {
    return fmt.Sprintf("Cat is eating %s", food)
}

func (c *Cat) Sleep() string {
    return "Cat is sleeping"
}

type Dog struct{}

func (d *Dog) Eat(food string) string {
    return fmt.Sprintf("Dog is eating %s", food)
}

func (d *Dog) Sleep() string {
    return "Dog is sleeping"
}
Nach dem Login kopieren

In den Klassen Cat und Dog werden jeweils die beiden in der Animal-Schnittstelle definierten Methoden Eat und Sleep implementiert.

  1. Schnittstellenabfrage testen

Abschließend müssen wir die Schnittstellenabfragefunktion testen, um festzustellen, ob die Cat- und Dog-Objekte die Animal-Schnittstelle implementieren. Der Testcode lautet wie folgt:

func main() {
    var animal Animal

    cat := &Cat{}
    if _, ok := cat.(Animal); ok {
        fmt.Println("cat implements Animal interface")
        animal = cat
    }

    dog := &Dog{}
    if _, ok := dog.(Animal); ok {
        fmt.Println("dog implements Animal interface")
        animal = dog
    }

    fmt.Println(animal.Eat("meat"))
    fmt.Println(animal.Sleep())
}
Nach dem Login kopieren

Erstellen Sie im Testcode zunächst die Variable animal, um Objekte zu speichern, die die Animal-Schnittstelle implementieren. Anschließend werden Cat- und Dog-Objekte erstellt und anhand der Typbeurteilung ermittelt, ob sie die Animal-Schnittstelle implementieren. Rufen Sie abschließend die Eat- und Sleep-Methoden des Tierobjekts zum Testen auf. 4. Zusammenfassung ausgeführt. Methoden dieses Objekts. In Golang können Sie Typzusicherungen und Typbeurteilungen verwenden, um Schnittstellenabfragen durchzuführen und polymorphe Operationen an Objekten durchzuführen.

Das obige ist der detaillierte Inhalt vonGolang-Schnittstellenabfrage. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage