Parcours
/
Go
Go
/
Programme
/
Méthodes
Mé

Méthodes en Go

3 exercices

À propos de Méthodes

Une méthode est une fonction avec un argument récepteur spécial. Le récepteur apparaît dans sa propre liste d'arguments, entre le mot-clé func et le nom de la méthode.

func (receiver type) MethodName(parameters) (returnTypes) {

}

On ne peut définir une méthode qu'avec un récepteur dont le type est défini dans le même package que la méthode.

type Person struct {
	Name string
}

func (p Person) Greetings() string {
	return fmt.Sprintf("Welcome %s!", p.Name)
}

s := Person{Name: "Bronson"}
fmt.Println(s.Greetings())
// Output: Welcome Bronson!

Il existe deux types de récepteurs : les récepteurs de valeur et les récepteurs pointeur.

Les méthodes dotées d'un récepteur de valeur travaillent sur une copie de la valeur qui leur est passée, ce qui signifie que toute modification apportée au récepteur à l'intérieur de la méthode n'est pas visible pour l'appelant.

Tu peux déclarer des méthodes avec des récepteurs pointeur afin de modifier la valeur vers laquelle pointe le récepteur. Ces modifications sont visibles elles aussi pour l'appelant de la méthode.

type rect struct {
	width, height int
}

func (r *rect) squareIt() {
	r.height = r.width
}

r := rect{width: 10, height: 20}
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 20

r.squareIt()
fmt.Printf("Width: %d, Height: %d\n", r.width, r.height)
// Output: Width: 10, Height: 10

Tu trouveras plusieurs exemples ici. Jette aussi un œil à ce court tutoriel sur les méthodes.

Rappel : une méthode n'est qu'une fonction avec un argument récepteur.

Modifie via GitHub Le lien s'ouvre dans une nouvelle fenêtre ou un nouvel onglet

Apprends Méthodes

L'entraînement est verrouillé

Déverrouille 2 exercices de plus pour t'entraîner sur Méthodes