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

10 idées faciles de décoration d'Halloween pour une chambre d'étudiant qui n'abîmeront pas les murs

10 idées faciles de décoration d'Halloween pour une chambre d'étudiant qui n'abîmeront pas les murs

Créez une chambre d'étudiant festive grâce à 10 idées de décorations d'Halloween sans danger pour les murs, des conseils d'affichage adaptés aux locataires, des vérifications de sécurité incendie et des conseils de démontage.

Organisez une soirée films d'horreur nostalgiques des années 80 grâce à ces idées !

Organisez une soirée films d'horreur nostalgiques des années 80 grâce à ces idées !

Organisez une soirée films d'horreur des années 80 avec un niveau de peur clairement défini, une décoration rétro, des tenues inspirées de l'époque, des en-cas faciles à préparer et des jeux amusants pour la soirée cinéma.

La tendance des méchants : Les meilleurs costumes sombres pour Halloween 2026

La tendance des méchants : Les meilleurs costumes sombres pour Halloween 2026

Créez un look sombre et sophistiqué pour Halloween 2026 grâce à six idées de costumes inspirés des méchants, des conseils de style pratiques, des indications budgétaires et des vérifications de sécurité.

Une chasse aux bonbons adaptée aux personnes allergiques : le projet de la citrouille turquoise en 2026

Une chasse aux bonbons adaptée aux personnes allergiques : le projet de la citrouille turquoise en 2026

Découvrez ce que signifie le projet Teal Pumpkin en 2026, comment les hôtes peuvent offrir des friandises non alimentaires distinctes et comment les familles peuvent planifier des itinéraires et examiner les bonbons en toute sécurité.

La chasse aux bonbons en 2026 : ce qui change pour la nuit d’Halloween

La chasse aux bonbons en 2026 : ce qui change pour la nuit d’Halloween

Découvrez ce que révèle le dernier sondage d'Halloween 2026 sur la collecte de bonbons, les événements communautaires et les moyens pratiques d'organiser une sortie de quartier plus sûre.

Comment organiser une fête de la lune d'Halloween sur le thème de la spiritualité étoilée

Comment organiser une fête de la lune d'Halloween sur le thème de la spiritualité étoilée

Organisez une fête d'Halloween au clair de lune empreinte de réflexion, avec possibilité de méditation, observation simple des étoiles, indications précises sur le ciel de 2026, cadre spirituel respectueux et éclairage sécuritaire.

CAF : comment contester une dette et respecter les délais de recours

CAF : comment contester une dette et respecter les délais de recours

Dette Caf contestée : distinguez rectification, recours amiable et remise de dette, vérifiez le délai applicable et adressez votre demande au bon organisme.

Comment jeter une batterie externe à Paris ? Comparer magasin, Trimobile et Espace tri

Comment jeter une batterie externe à Paris ? Comparer magasin, Trimobile et Espace tri

À Paris, une batterie externe usagée va dans une collecte dédiée. Comparez magasin, Trimobile et Espace tri, avec les précautions si elle est endommagée.

Changement d’adresse à Amiens : quelles démarches effectuer avant et après le déménagement ?

Changement d’adresse à Amiens : quelles démarches effectuer avant et après le déménagement ?

Impôts, carte grise, Caf, collecte des déchets et stationnement : suivez les étapes essentielles pour signaler votre changement d’adresse à Amiens.

Comment se débarrasser d’un ordinateur à Angers ? Réparation, reprise ou déchèterie

Comment se débarrasser d’un ordinateur à Angers ? Réparation, reprise ou déchèterie

À Angers, comparez don, réparation, reprise en magasin et déchèterie pour un ordinateur usagé. Accès par badge, horaires et effacement des données.