Structure

Une structure est une collection de types par exemple

type personne struct {
    nom string
    age int
}

une variable de type personne contiendra un attribut nom et un attribut age

// création d'une personne
p := personne{nom:"Robert", age:70}

// lecture d'un attribut
a := p.age

// modification
p.age = 47

Méthode

Comme on définit une fonction dans une classe, on va définir une fonction liée à une structure.

Prenons l'exemple Python d'une classe Rectangle avec sa méthode perimetre

code python

class Rectangle:
    def __init__(self, largeur, longueur):
        self.largeur = largeur
        self.longueur = longueur

    def perimetre(self):
        return 2*(self.longueur + self.largeur)
    
# exemple d'utilisation
r = Rectangle(45, 170)
perim = r.perimetre()

Notez que la méthode perimetre a besoin de pouvoir atteindre l'objet Rectangle sur lequel elle s'applique et que cela se fait, dans la définition en précisant self comme argument de la fonction, et à l'exécution en écrivant r. devant l'appel perimetre().

Voici comme cela se transforme en Go

code go

type Rectangle struct {
    largeur int
    longueur int
}

func (self rect) perimetre() int {
    return 2*(self.longueur +self.largeur)
}

// exemple d'utilisation
r := Rectangle{largeur:45, longueur:170}
perim := r.perimetre()