Méthodes en Golang

Les méthodes en Golang  sont comme des fonctions mais avec une différence majeure : elles ont un argument récepteur , qui permet d'accéder aux propriétés du récepteur . Le récepteur peut être de type struct ou non-struct, mais les deux doivent être dans le même package. Il n'est pas possible de créer des méthodes pour les types définis dans d'autres packages, y compris les types intégrés comme int ou string ; Sinon, le compilateur signalera une erreur.

Méthodes en Golang

Par exemple:

package main

import "fmt"

// Định nghĩa một struct
type person struct {
    name string
    age  int
}

// Định nghĩa một phương thức với struct receiver
func (p person) display() {
    fmt.Println("Name:", p.name)
    fmt.Println("Age:", p.age)
}

func main() {
    // Tạo một phiên bản của struct
    a := person{name: "a", age: 25}
    
    // Gọi phương thức
    a.display()
}

Résultat:

Name: a
Age: 25

Syntaxe

func(receiver_name Type)  method_name(parameter_list) (return_type) { 
// Code
}

Récepteur : accessible via cette méthode.

Méthode avec récepteur de type struct

En Go, vous pouvez définir une méthode où le récepteur est de type struct. Le récepteur est accessible à l'intérieur de la méthode. L'exemple précédent illustre cette approche avec un récepteur de type struct.

La méthode avec le récepteur n'est pas de type structure

Go permet également aux méthodes d'avoir des récepteurs non struct, à condition que le type de récepteur et la définition de la méthode soient dans le même package. Vous ne pouvez pas définir une méthode avec un type de récepteur provenant d'un autre package (par exemple int, string).

Par exemple:

package main

import "fmt"

// Tạo một kiểu tùy biến dựa trên int
type number int

// Định nghĩa một phương thức với receiver không phải struct
func (n number) square() number {
    return n * n
}

func main() {
    a := number(4)
    b := a.square()

    fmt.Println("Square of", a, "is", b)
}

Résultat:

Square of 4 is 16

Méthode avec pointeur récepteur

En Go, les méthodes peuvent avoir des récepteurs de pointeurs. Cela permet aux modifications apportées à la méthode d'être répercutées dans l'appelant, ce qui n'est pas possible avec les récepteurs de valeur.

Syntaxe:

func (p *Type) method_name(...Type) Type {    // Code}

Par exemple:

package main

import "fmt"

// Defining a struct
type person struct {
    name string
}

// Phương thức với receiver pointer để chỉnh sửa dữ liệu
func (p *person) changeName(newName string) {
    p.name = newName
}

func main() {
    a := person{name: "a"}
    
    fmt.Println("Before:", a.name)
    
    // Gọi phương thức này để thay đổi tên
    a.changeName("b")
    
    fmt.Println("After:", a.name)
}

Résultat:

Before: a
After: b

La méthode accepte à la fois le pointeur et la valeur

Contrairement aux fonctions, les méthodes Go peuvent accepter à la fois des récepteurs de valeur et de pointeur. Vous pouvez passer des pointeurs ou des valeurs et la méthode gérera en conséquence.

Par exemple:

package main
import "fmt"

type person struct {
    name string
}
// Phương thức với receiver pointer
func (p *person) updateName(newName string) {
    p.name = newName
}

// Phương thức với receiver value 
func (p person) showName() {
    fmt.Println("Name:", p.name)
}

func main() {
    a := person{name: "a"}
    
    // Gọi phương thức con trỏ cùng giá trị
    a.updateName("b")
    fmt.Println("After pointer method:", a.name)
    
    // Gọi phương thức giá trị với con trỏ
    (&a).showName()
}

Résultat:

After pointer method: b
Name: b

Différence entre méthode et fonction

Méthode Mâchoire
Contient un récepteur Ne contient pas de récepteur
Il est possible de définir des méthodes portant le même nom mais de types différents. Les fonctions portant le même nom mais de types différents ne sont pas autorisées.
Ne peut pas être utilisé comme superlatif Peut être utilisé comme objets superordonnés

Laisser un commentaire

Comment jeter une batterie externe à Saint-Étienne ? Les solutions sûres et pratiques

Comment jeter une batterie externe à Saint-Étienne ? Les solutions sûres et pratiques

À Saint-Étienne, une batterie externe ne va ni dans la poubelle grise ni dans le bac jaune. Voici où la déposer, comment préparer une batterie intacte ou gonflée et quand choisir magasin ou déchèterie.

Comment jeter un téléviseur à Angers ? Guide pratique pour le déposer ou le faire reprendre

Comment jeter un téléviseur à Angers ? Guide pratique pour le déposer ou le faire reprendre

Téléviseur usagé à Angers : déchèterie, badge, reprise gratuite en magasin, préparation et erreurs à éviter pour recycler votre écran correctement.

Comment jeter de l’huile de cuisson usagée à Perpignan ?

Comment jeter de l’huile de cuisson usagée à Perpignan ?

Découvrez comment stocker et déposer l’huile de cuisson usagée à Perpignan sans boucher les canalisations, avec les précautions et vérifications locales.

Comment jeter des piles à Le Havre ? Les bons points de collecte et les règles à suivre

Comment jeter des piles à Le Havre ? Les bons points de collecte et les règles à suivre

À Le Havre, les piles usagées ne vont ni dans les ordures ménagères ni dans le bac jaune. Découvrez où les déposer, comment les préparer et que faire des batteries abîmées.

Comment jeter des piles à Toulon ? Points de collecte, magasins ou déchèterie

Comment jeter des piles à Toulon ? Points de collecte, magasins ou déchèterie

À Toulon, comparez les solutions pour jeter vos piles usagées : points de collecte, magasins et déchèterie, avec les précautions à connaître.

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

Comment jeter une batterie au lithium à Angers ? Les points de collecte et les précautions

À Angers, découvrez où déposer une batterie au lithium, comment la sécuriser et quoi faire si elle est gonflée, endommagée ou chaude.

Comment jeter une batterie au lithium à Aix-en-Provence ?

Comment jeter une batterie au lithium à Aix-en-Provence ?

Découvrez où déposer une batterie au lithium à Aix-en-Provence et les précautions à prendre selon son état, sa taille et son appareil.

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

Comment jeter des néons à Nîmes ? Les bons points de collecte et les précautions à prendre

À Nîmes, les tubes fluorescents et LED ne vont pas à la poubelle. Découvrez où les déposer, comment les transporter et quoi faire s’ils se cassent.

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Comment jeter un vélo à Perpignan ? Guide pratique du tri et du réemploi

Vélo usé à Perpignan : vérifiez le réemploi, le badge, l’adresse de la déchèterie et les précautions pour un vélo électrique.

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

Comment jeter un téléviseur à Reims ? Les solutions simples et les erreurs à éviter

À Reims, un téléviseur usagé est un DEEE : déchèterie, reprise en magasin ou enlèvement sur rendez-vous. Voici la marche à suivre sans erreur.