Schnittstelle in Beton gießen Typ in Go
Die Schnittstellen der Go-Sprache unterscheiden sich von denen anderer Sprachen. Die Schnittstelle ist ein Typ in der Go-Sprache, der verwendet wird, um eine Sammlung von einer oder mehreren Methodensignaturen auszudrücken.
Es ist abstrakt; Sie können also keine Instanz davon erstellen. Sie dürfen jedoch eine Schnittstellentypvariable einrichten, der ein konkreter Typwert zugewiesen werden kann, der die erforderlichen Methoden der Schnittstelle enthält.
Oder anders ausgedrückt: Die Schnittstelle ist sowohl ein Satz von Methoden als auch ein benutzerdefinierter Typ.
Dieses Tutorial zeigt, wie man eine Schnittstelle in Go in einen konkreten Typ umwandelt.
Schnittstelle in Beton gießen Typ in Go
Der Operator .(type)
ist nützlich, um ein Objekt vom Schnittstellentyp in einen konkreten Typ umzuwandeln. Eine Sammlung von typimplementierbaren Methodensignaturen bildet eine Schnittstelle.
In diesem Beispiel erstellen wir ein Objekt vom Schnittstellentyp Person
. Wir fügen Jay Singh
als Person
zum Schnittstellenobjekt hinzu, schreiben eine Methode, um das Objekt von einem Schnittstellentyp in einen konkreten Typ umzuwandeln, greifen auf die Daten des Schnittstellenobjekttyps zu und zeigen unser Ergebnis an.
package main
import "fmt"
type Person struct {
firstName string
lastName string
}
func main() {
person := Person{
firstName: "Jay",
lastName: "Singh",
}
printIfPerson(person)
}
func printIfPerson(object interface{}) {
person, ok := object.(Person)
if ok {
fmt.Printf("Hello %s!\n", person.firstName)
}
}
Ausgabe:
Hello Jay!