La surcharge de méthodes n'est pas prise en charge dans le langage Go, mais la simulation d'interface peut être utilisée. Étapes de surcharge de méthode : 1. Créer une interface contenant toutes les signatures possibles ; 2. Implémenter plusieurs méthodes avec différentes signatures pour implémenter l'interface.
Comment implémenter la surcharge de méthodes en langage Go
La surcharge de méthodes est une situation où il est autorisé d'utiliser des méthodes avec le même nom mais des signatures différentes. En langage Go, la surcharge de méthodes n'est pas directement prise en charge, mais elle peut être simulée à l'aide d'interfaces.
Implémenter
Créez une interface avec toutes les signatures possibles :
type MyInterface interface { Method1(args1 int) Method1(args1 float32) }
Ensuite, implémentez plusieurs méthodes avec différentes signatures qui implémentent l'interface :
type MyStruct struct {} func (ms MyStruct) Method1(args1 int) {} func (ms MyStruct) Method1(args1 float32) {}
Exemple pratique
Considérons un programme qui calcule l'aire . Il devrait être capable de calculer l'aire des rectangles et des cercles.
type Shape interface { Area() float32 } type Rectangle struct { Width, Height float32 } func (r Rectangle) Area() float32 { return r.Width * r.Height } type Circle struct { Radius float32 } func (c Circle) Area() float32 { return math.Pi * c.Radius * c.Radius } func main() { shapes := []Shape{ Rectangle{5, 10}, Circle{5}, } for _, shape := range shapes { fmt.Println(shape.Area()) } }
Dans cet exemple, les structures Shape
接口定义了计算面积的方法。Rectangle
和 Circle
implémentent toutes cette interface, fournissant des implémentations spécifiques pour calculer l'aire de leurs formes respectives.
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!