In Go gibt es keinen traditionellen Polymorphismus, aber Sie können Schnittstellen und Reflexion verwenden, um ähnliche Effekte zu erzielen: Definieren Sie Schnittstellen und klären Sie Methodensätze. Erstellen Sie mehrere Typen, die diese Schnittstelle implementieren. Verwenden Sie Reflection, um Methoden dynamisch aufzurufen, ohne den spezifischen Typ zu kennen.
Wie implementiert man Polymorphismus
in Go?
In Go gibt es keinen Polymorphismus im herkömmlichen Sinne, aber Schnittstellen und Reflexionsmechanismen können verwendet werden, um polymorphartiges Verhalten zu erreichen.
Schnittstelle:
Reflexion:
Implementierungsschritte:
Beispiel:
<code class="go">type Shape interface { Area() float64 } type Square struct { side float64 } func (s *Square) Area() float64 { return s.side * s.side } type Circle struct { radius float64 } func (c *Circle) Area() float64 { return math.Pi * c.radius * c.radius } func main() { shapes := []Shape{ &Square{side: 5}, &Circle{radius: 5}, } for _, s := range shapes { fmt.Println("Area:", reflect.ValueOf(s).MethodByName("Area").Call([]reflect.Value{})[0].Float()) } }</code>
Vorteile:
Nachteile:
Das obige ist der detaillierte Inhalt vonSo implementieren Sie Polymorphismus in Golang. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!