Maison > développement back-end > Golang > Comment implémenter la surcharge de méthodes en langage Go

Comment implémenter la surcharge de méthodes en langage Go

WBOY
Libérer: 2024-04-03 12:15:02
original
614 Les gens l'ont consulté

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

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)
}
Copier après la connexion

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) {}
Copier après la connexion

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())
    }
}
Copier après la connexion

Dans cet exemple, les structures Shape 接口定义了计算面积的方法。RectangleCircle 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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal