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
Sign up and earn $1000 a day ⋙

Leave a Comment

Comment récupérer laccès au disque dur, corriger lerreur dimpossibilité douvrir le disque dur

Comment récupérer laccès au disque dur, corriger lerreur dimpossibilité douvrir le disque dur

Dans cet article, nous vous expliquerons comment récupérer l'accès à votre disque dur en cas de panne. Suivez-nous !

Comment utiliser Conversation Awareness et Live Listen sur les AirPods

Comment utiliser Conversation Awareness et Live Listen sur les AirPods

À première vue, les AirPods ressemblent à n'importe quel autre écouteur sans fil. Mais tout a changé avec la découverte de quelques fonctionnalités peu connues.

Tout sur iOS 26

Tout sur iOS 26

Apple a présenté iOS 26 – une mise à jour majeure avec un tout nouveau design en verre dépoli, des expériences plus intelligentes et des améliorations des applications familières.

Healthy snacks that help you lose weight

Healthy snacks that help you lose weight

Craving for snacks but afraid of gaining weight? Dont worry, lets explore together many types of weight loss snacks that are high in fiber, low in calories without making you try to starve yourself.

Do you really need rest days between workouts?

Do you really need rest days between workouts?

Rest and recovery are not the same thing. Do you really need rest days when you schedule a workout? Lets find out!

Les meilleurs ordinateurs portables pour étudiants en 2025

Les meilleurs ordinateurs portables pour étudiants en 2025

Les étudiants ont besoin d'un ordinateur portable spécifique pour leurs études. Il doit être non seulement suffisamment puissant pour être performant dans la filière choisie, mais aussi suffisamment compact et léger pour être transporté toute la journée.

Comment ajouter une imprimante à Windows 10

Comment ajouter une imprimante à Windows 10

L'ajout d'une imprimante à Windows 10 est simple, bien que le processus pour les appareils filaires soit différent de celui pour les appareils sans fil.

Comment vérifier la RAM et vérifier les erreurs de RAM sur votre ordinateur avec le taux de précision le plus élevé

Comment vérifier la RAM et vérifier les erreurs de RAM sur votre ordinateur avec le taux de précision le plus élevé

Comme vous le savez, la RAM est un composant matériel essentiel d'un ordinateur. Elle sert de mémoire pour le traitement des données et détermine la vitesse d'un ordinateur portable ou de bureau. Dans l'article ci-dessous, WebTech360 vous présente quelques méthodes pour détecter les erreurs de RAM à l'aide d'un logiciel sous Windows.

Why doesnt the freezer have a light but the refrigerator does?

Why doesnt the freezer have a light but the refrigerator does?

Refrigerators are familiar appliances in families. Refrigerators usually have 2 compartments, the cool compartment is spacious and has a light that automatically turns on every time the user opens it, while the freezer compartment is narrow and has no light.

2 Ways to Fix Network Congestion That Slows Down Wi-Fi

2 Ways to Fix Network Congestion That Slows Down Wi-Fi

Wi-Fi networks are affected by many factors beyond routers, bandwidth, and interference, but there are some smart ways to boost your network.

Comment rétrograder diOS 17 à iOS 16 sans perte de données avec Tenorshare Reiboot

Comment rétrograder diOS 17 à iOS 16 sans perte de données avec Tenorshare Reiboot

Si vous souhaitez revenir à la version stable d'iOS 16 sur votre téléphone, voici le guide de base pour désinstaller iOS 17 et rétrograder d'iOS 17 à 16.

Que se passe-t-il dans le corps lorsque vous mangez du yaourt tous les jours ?

Que se passe-t-il dans le corps lorsque vous mangez du yaourt tous les jours ?

Le yaourt est un aliment merveilleux. Est-il bon de manger du yaourt tous les jours ? Si vous mangez du yaourt tous les jours, comment votre corps va-t-il changer ? Découvrons-le ensemble !

Quel type de riz est le meilleur pour la santé ?

Quel type de riz est le meilleur pour la santé ?

Cet article présente les types de riz les plus nutritifs et comment maximiser les bienfaits pour la santé du riz que vous choisissez.

Comment se réveiller à lheure le matin

Comment se réveiller à lheure le matin

Établir un horaire de sommeil et une routine de coucher, changer votre réveil et ajuster votre alimentation sont quelques-unes des mesures qui peuvent vous aider à mieux dormir et à vous réveiller à l’heure le matin.

Latest Bathroom Tower Defense Codes and How to Enter Codes

Latest Bathroom Tower Defense Codes and How to Enter Codes

Get Bathroom Tower Defense Roblox game codes and redeem them for exciting rewards. They will help you upgrade or unlock towers with higher damage.