Go-Sprache ist eine statisch typisierte Sprache, die die Bestimmung des Typs jeder Variablen, jedes Funktionsparameters und jedes Rückgabewerts zur Kompilierungszeit erzwingt. Daher ist in der Go-Sprache die Typverwaltung von Funktionsparametern und Rückgabewerten besonders wichtig.
In der tatsächlichen Entwicklung stoßen wir häufig auf Situationen, in denen wir bestimmte Datentypen in einen anderen Datentyp konvertieren müssen. Daher stellt die Go-Sprache einen Schnittstellentyp bereit, der zur Darstellung beliebiger Datentypen verwendet werden kann, d. h. zur Konvertierung verschiedener Datentypen in denselben Datentyp.
Im Folgenden stellen wir vor, wie Sie den Schnittstellentyp in der Go-Sprache verwenden und wie Sie andere Datentypen in Schnittstellentypdaten konvertieren.
verwenden. Das Folgende ist die vollständige Definition des Schnittstellentyps:
type interface_name interface { method_name1 [return_type] method_name2 [return_type] method_name3 [return_type] ... method_namen [return_type] }
Unter diesen stellt interface_name den definierten Schnittstellennamen dar. method_name stellt den Methodennamen in der Schnittstelle dar. Wenn die Methode einen Rückgabewert hat, muss der Rückgabewerttyp hinzugefügt werden. Hierbei ist zu beachten, dass die von der Schnittstelle definierten Methoden nicht implementiert werden müssen, die Methodensignatur jedoch im Schnittstellentyp definiert werden muss. interface
Implementierung des Schnittstellentyps in der Go-Sprache
type student struct { name string age int } type studentInterface interface { GetName() string GetAge() int } func (s student) GetName() string { return s.name } func (s student) GetAge() int { return s.age } func main() { stu := student{"John", 18} var varStu studentInterface = stu fmt.Println(varStu.GetName()) fmt.Println(varStu.GetAge()) }
Konvertieren Sie andere Typen in der Go-Sprache in Schnittstellentypen.
// 通过实现Stringer接口将自定义类型转化为interface类型 type People struct { name string age int } func (p People) String() string { return fmt.Sprintf("%v (%v years)", p.name, p.age) } func main() { john := People{"John", 18} fmt.Println(john) var varObj interface{} varObj = john fmt.Printf("varObj is: %v\n", varObj) }
Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Verwendung von Schnittstellentypen in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!