Maison > Article > développement back-end > Comment implémenter le polymorphisme dans Golang
Il n'y a pas de polymorphisme traditionnel dans Go, mais vous pouvez utiliser des interfaces et la réflexion pour obtenir des effets similaires : définir des interfaces et clarifier des ensembles de méthodes. Créez plusieurs types qui implémentent cette interface. Utilisez la réflexion pour appeler des méthodes de manière dynamique sans connaître le type spécifique.
Comment implémenter le polymorphisme
en Go ?
Il n'y a pas de polymorphisme au sens traditionnel dans Go, mais des interfaces et des mécanismes de réflexion peuvent être utilisés pour obtenir un comportement de type polymorphe.
Interface :
Réflexion :
Étapes de mise en œuvre :
Exemple :
<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>
Avantages :
Inconvénients :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!