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

Health risks of Vitamin B12 deficiency

Health risks of Vitamin B12 deficiency

Your red blood cells, nerves, and brain all depend on vitamin B12. But some people dont get enough of this nutrient, and a vitamin B12 deficiency can cause a number of health problems.

ChatGPT plante globalement

ChatGPT plante globalement

Le matin du 22 novembre, le chatbot ChatGPT d'OpenAI a rencontré de nombreux problèmes et de nombreux utilisateurs dans le monde n'ont pas pu utiliser cette application d'IA.

Comment utiliser WiFi Analyzer pour booster votre connexion Wi-Fi

Comment utiliser WiFi Analyzer pour booster votre connexion Wi-Fi

Le simple achat d’un nouveau routeur Wi-Fi ne suffit pas à booster votre réseau. Pour tirer le meilleur parti de votre Wi-Fi, vous devez vous assurer que vous obtenez la meilleure portée, le meilleur signal et la meilleure fréquence.

Unités de mesure de base en informatique

Unités de mesure de base en informatique

Bit signifie Binary Digit, qui est le terme désignant la plus petite partie de la mémoire d'un ordinateur capable de stocker l'un des deux états d'information : 0 ou 1 (qui peut être compris comme l'état activé ou désactivé d'un transistor dans un ordinateur).

Comment améliorer vos habitudes de prise de notes grâce aux rappels

Comment améliorer vos habitudes de prise de notes grâce aux rappels

Une bonne habitude de mémorisation commence par des rappels : ils arrivent au bon moment pour capturer ces pensées fugaces.

7 applications gratuites qui amélioreront instantanément vos photos sur smartphone

7 applications gratuites qui amélioreront instantanément vos photos sur smartphone

Il existe encore de nombreux outils de photographie gratuits et puissants que vous pouvez utiliser pour améliorer vos photos.

Astuces pour rendre le widget de recherche Google plus utile

Astuces pour rendre le widget de recherche Google plus utile

Le widget Recherche Google vous donne un accès rapide à la recherche Google et au flux Discover, ainsi qu'à la recherche vocale et à Google Lens.

Comment se connecter et désactiver le rappel dexpiration du mot de passe

Comment se connecter et désactiver le rappel dexpiration du mot de passe

Si vous rencontrez le message Votre mot de passe a expiré et doit être modifié sur l'écran de connexion Windows, c'est parce que les mots de passe des comptes locaux Windows expirent tous les 42 jours par défaut.

Comment convertir des images WebP en PNG, JPG sur Chrome, Coc Coc

Comment convertir des images WebP en PNG, JPG sur Chrome, Coc Coc

Pour convertir des images WebP aux formats PNG et JPG, nous pouvons le faire de différentes manières, par exemple en le faisant directement sur l'URL de l'image ou en utilisant des outils de conversion d'image.

4 façons dutiliser le mode Canvas de ChatGPT

4 façons dutiliser le mode Canvas de ChatGPT

Le nouveau mode Canvas de ChatGPT ajoute une nouvelle dimension à l'écriture et à l'édition dans le moteur d'IA générative leader au monde.

Ce que les gens détestent le plus dans les éditeurs de photos IA

Ce que les gens détestent le plus dans les éditeurs de photos IA

Bien que les éditeurs de photos IA puissent considérablement rationaliser votre flux de travail d'édition, ils sont loin d'être parfaits. Il y a quelques choses que les utilisateurs n'aiment pas à leur sujet et dans l'article d'aujourd'hui, vous découvrirez lesquelles.

Nintendo révolutionne la façon dont les jeux numériques sont partagés avec les cartes de jeu virtuelles

Nintendo révolutionne la façon dont les jeux numériques sont partagés avec les cartes de jeu virtuelles

Dans une démarche qui change complètement la façon dont les jeux numériques sont distribués, Nintendo a officiellement présenté le système de cartes de jeu virtuelles lors de l'événement Nintendo Direct.

Instructions pour envoyer des fichiers sur Messenger sur téléphone et ordinateur

Instructions pour envoyer des fichiers sur Messenger sur téléphone et ordinateur

En plus d'envoyer des photos sur Messenger, les utilisateurs peuvent désormais envoyer des fichiers sur l'application à d'autres, avec tous les formats de fichiers de documents tels que pdf, doc, xlx...

Comment ajouter automatiquement des sous-titres et des paroles sur CapCut

Comment ajouter automatiquement des sous-titres et des paroles sur CapCut

CapCut a également la possibilité d'insérer des sous-titres vidéo comme certaines applications de sous-titrage vidéo célèbres. L'application reconnaît ensuite automatiquement le son et la voix dans la vidéo, puis les affiche dans la vidéo.

Différence entre le Wi-Fi 2,4 GHz et 5 GHz

Différence entre le Wi-Fi 2,4 GHz et 5 GHz

Vous venez de décider de remplacer votre ancien routeur. Lorsque vous déballez votre nouveau routeur sans fil, vous vous demandez peut-être pourquoi il existe deux réseaux : 2,4 GHz et 5 GHz. Le réseau 5 GHz est-il donc plus puissant ? Quelle est la différence entre eux ?