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

OpenAI lance un nouvel outil pour aider les développeurs à créer des agents dIA

OpenAI lance un nouvel outil pour aider les développeurs à créer des agents dIA

Considérant les agents d’IA comme l’avenir de l’industrie de l’intelligence artificielle, OpenAI admet qu’il est très difficile de créer des agents puissants et de « qualité industrielle » avec les outils actuels.

Pocket Casts : la meilleure application de podcast désormais gratuite sur ordinateur

Pocket Casts : la meilleure application de podcast désormais gratuite sur ordinateur

Excellente nouvelle pour les fans de podcasts. Pocket Casts est actuellement gratuit à utiliser sur le Web, ainsi que via les applications Mac et Windows.

Découvrez les premières images de latterrisseur Blue Ghost à la surface de la Lune

Découvrez les premières images de latterrisseur Blue Ghost à la surface de la Lune

Avec l'arrivée de l'atterrisseur Blue Ghost sur la Lune ce week-end, les astronomes du monde entier attendent avec impatience une série de nouvelles images époustouflantes qui offriront un aperçu véritablement immersif, et même sans précédent, du satellite naturel de notre planète.

Comment utiliser les constantes dans Golang

Comment utiliser les constantes dans Golang

Qu'est-ce que Constant ou Const dans Golang ? Voici ce que vous devez savoir sur l’utilisation des constantes dans Go.

How to fake iPhone messages, create Messenger messages

How to fake iPhone messages, create Messenger messages

Making fake messages to troll people is very simple when we can use fake message creation applications, or use some websites that create fake messages completely free.

Code Ultimate Evolution : Dernier Saiyan et comment saisir le code

Code Ultimate Evolution : Dernier Saiyan et comment saisir le code

Code Ultimate Evolution Saiyan offre aux joueurs une série de récompenses attrayantes et grâce à cela, en début de partie, telles que des diamants, de l'expérience, des capsules d'expérience, de l'or, des fragments de personnage

Comment modifier laperçu de la photo dans le profil Instagram

Comment modifier laperçu de la photo dans le profil Instagram

Instagram a récemment modifié la disposition de la grille de profil en un aperçu vertical 4:5. Les utilisateurs peuvent également personnaliser l’image d’aperçu pour se concentrer sur le contenu souhaité.

Comment optimiser Google Chrome pour un démarrage ultra-rapide

Comment optimiser Google Chrome pour un démarrage ultra-rapide

Nous sommes tous passés par là : cliquer sur l'icône Chrome, puis attendre une éternité que le navigateur se lance. Attendre une éternité que la page d’accueil se charge peut être frustrant.

Comment créer des autocollants à partir de photos sur Samsung

Comment créer des autocollants à partir de photos sur Samsung

Sur certains téléphones Samsung Galaxy, il existe une option permettant de créer des autocollants à partir de photos de l'album, permettant aux utilisateurs de créer librement des autocollants à utiliser dans les messages.

Comment réparer le Gestionnaire des tâches qui ne fonctionne pas sous Windows

Comment réparer le Gestionnaire des tâches qui ne fonctionne pas sous Windows

Les utilisateurs ne peuvent pas utiliser le Gestionnaire des tâches lorsqu’il n’est pas en cours d’exécution. Voici comment vous pouvez réparer le Gestionnaire des tâches qui ne fonctionne pas sur un PC Windows 11/10.

Chromecast est officiellement mort

Chromecast est officiellement mort

La gamme Chromecast de Google est depuis longtemps un choix populaire si vous souhaitez remplacer votre expérience de télévision intelligente ou transformer n'importe quel téléviseur en téléviseur intelligent.

Ce téléphone Android vient de battre le record dautonomie de la batterie dun smartphone

Ce téléphone Android vient de battre le record dautonomie de la batterie dun smartphone

Pas l'iPhone 15 Pro Max, le nouveau téléphone de jeu Android Asus ROG Phone 8 Pro est le téléphone avec la plus longue autonomie de batterie aujourd'hui, selon la dernière revue des experts de Toms Guide.

Comment transformer une photo en peinture à laide de la fonction Remplissage génératif dans Photoshop

Comment transformer une photo en peinture à laide de la fonction Remplissage génératif dans Photoshop

Que vous souhaitiez transformer votre photo en aquarelle, en peinture à l'huile ou en un autre type de peinture, voici comment créer l'effet à l'aide du remplissage génératif dans Photoshop.

5 tips to improve image and sound in Zoom calls

5 tips to improve image and sound in Zoom calls

While hardware quality helps you look more professional, anyone can achieve it with just a few small changes.

Composition de la saison 11 de Thien Cung DTCL et de la dernière composition de Thien Cung TFT

Composition de la saison 11 de Thien Cung DTCL et de la dernière composition de Thien Cung TFT

Thien Cung DTCL est également très facile à jouer lorsqu'il y a un tank complet et des généraux principaux lorsque Soraka cette fois ne sera plus le général qui améliore la santé des alliés mais sera complètement un général qui inflige des dégâts.