Methoden in Golang

Methoden in Golang  lijken op functies, maar met één groot verschil: ze hebben een receiver -argument , waarmee toegang verkregen kan worden tot de eigenschappen van de receiver . De ontvanger kan van het type struct of non-struct zijn, maar beide moeten zich in hetzelfde pakket bevinden. Het is niet mogelijk om methoden te maken voor typen die in andere pakketten zijn gedefinieerd, inclusief ingebouwde typen zoals int of string ; Anders zal de compiler een fout rapporteren.

Methoden in Golang

Bijvoorbeeld:

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()
}

Resultaat:

Name: a
Age: 25

Syntaxis

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

Ontvanger: Kan via deze methode worden benaderd.

Methode met ontvanger van struct-type

In Go kunt u een methode definiëren waarbij de ontvanger van het type struct is. Ontvanger is toegankelijk binnen de methode. Het vorige voorbeeld illustreert deze aanpak met een Receiver van het type struct.

Methode met ontvanger is geen structuurtype

Go staat ook toe dat methoden niet-structuurontvangers hebben, zolang het ontvangertype en de methodedefinitie zich in hetzelfde pakket bevinden. U kunt geen methode definiëren met een ontvangertype uit een ander pakket (bijv. int, string).

Bijvoorbeeld:

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)
}

Resultaat:

Square of 4 is 16

Methode met ontvangerwijzer

In Go kunnen methoden pointer-ontvangers hebben. Hierdoor kunnen wijzigingen die in de methode zijn aangebracht, worden weerspiegeld in de aanroeper. Dit is niet mogelijk bij waardeontvangers.

Syntaxis:

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

Bijvoorbeeld:

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)
}

Resultaat:

Before: a
After: b

Methode accepteert zowel pointer als waarde

In tegenstelling tot functies kunnen Go-methoden zowel waarde- als pointerontvangers accepteren. U kunt pointers of waarden doorgeven en de methode zal hiernaar handelen.

Bijvoorbeeld:

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()
}

Resultaat:

After pointer method: b
Name: b

Verschil tussen methode en functie

Methode Kaak
Bevat een ontvanger Bevat geen ontvanger
Het is mogelijk om methoden met dezelfde naam maar verschillende typen te definiëren. Functies met dezelfde naam maar verschillende typen zijn niet toegestaan.
Kan niet als superlatief worden gebruikt Kan gebruikt worden als bovengeschikte objecten
Sign up and earn $1000 a day ⋙

Leave a Comment

Hoe je 1 maand Discord Nitro gratis krijgt met Opera GX

Hoe je 1 maand Discord Nitro gratis krijgt met Opera GX

Opera GX, de op gaming gerichte webbrowser, is een interessante samenwerking aangegaan met Discord. Gebruikers krijgen nu een gratis proefperiode van een maand voor Discord Nitro.

Hoe u snel een Windows 10-computerscherm kunt opnemen

Hoe u snel een Windows 10-computerscherm kunt opnemen

Er zijn momenteel veel programma's beschikbaar waarmee u uw computerscherm kunt opnemen, die Windows 10 ondersteunen. Hiermee kunt u eenvoudig uw computerscherm opnemen, vooral als u gamet.

Hoe je reacties uitschakelt tijdens livestreaming op Facebook

Hoe je reacties uitschakelt tijdens livestreaming op Facebook

Wanneer u via Facebook live kijkt, worden de reacties automatisch op het online videoscherm weergegeven. Dan weten de kijkers ook welke opmerkingen andere mensen hebben gemaakt.

15 dingen die je met ChatGPT kunt doen

15 dingen die je met ChatGPT kunt doen

Sinds de lancering in november 2022 heeft ChatGPT veel aandacht gekregen vanwege de vele toepassingsmogelijkheden. Om u te helpen het maximale uit deze tool te halen, vindt u hier 15 manieren waarop u ChatGPT kunt gebruiken.

Tips voor het vinden van goedkope vluchten op Gemini

Tips voor het vinden van goedkope vluchten op Gemini

De widgets op Gemini helpen deze AI-assistent om gebruikers op meer vlakken te bereiken, bijvoorbeeld door goedkope vliegtickets te vinden via de Google Flights-widget.

Benoemde retourparameters in Golang

Benoemde retourparameters in Golang

In Golang worden benoemde retourparameters vaak benoemde parameters genoemd. Met Golang kunt u de retourparameters of resultaten van functies benoemen in de functiehandtekening of -definitie.

Instructies voor het instellen van een chatachtergrond op WhatsApp

Instructies voor het instellen van een chatachtergrond op WhatsApp

WhatsApp heeft een functie om de chatachtergrond te veranderen, waarmee gebruikers chatthema's op WhatsApp kunnen instellen. Gebruikers kunnen kiezen uit 30 verschillende achtergronden voor hun chats, of hun eigen afbeeldingen gebruiken als chatachtergrond op WhatsApp.

Wat is een FLV-bestand? Hoe open ik FLV-bestanden op mijn computer?

Wat is een FLV-bestand? Hoe open ik FLV-bestanden op mijn computer?

Vaak download je video's van internet naar je computer om ze offline te bekijken. Vaak zie je dan FLV-bestanden. Vindt u het lastig om ze te openen? Vandaag geven we u in het onderstaande artikel informatie over FLV-videobestanden.

Hoe bekijk je het nieuwsarchief op je Facebook-telefoon of computer?

Hoe bekijk je het nieuwsarchief op je Facebook-telefoon of computer?

Om geplaatste Facebook-nieuwtjes te kunnen bekijken, moet u het nieuwsarchief op Facebook activeren. Nadat u de archiefmodus hebt ingeschakeld, worden alle Facebookberichten in het archief opgeslagen, zodat u ze later weer kunt bekijken.

Laatste MU Luc Dia VNG-code en hoe u de code kunt inwisselen

Laatste MU Luc Dia VNG-code en hoe u de code kunt inwisselen

Je kunt MU Luc Dia VNG-spelcodes inwisselen voor Zen en andere valuta.

10 onmisbare apps voor boekenliefhebbers

10 onmisbare apps voor boekenliefhebbers

Ook al heb je geen boek bij je, dat betekent niet dat je moet stoppen met lezen. Het enige dat u nodig hebt, is uw telefoon om socialemedia-apps voor boekenliefhebbers uit te proberen en het volgende boek te vinden dat u wilt lezen.

Leer meer over Spotify Connect: de Spotify-functie die gebruikers dwong YouTube Music te verlaten

Leer meer over Spotify Connect: de Spotify-functie die gebruikers dwong YouTube Music te verlaten

De mogelijkheid om de muziek op het ene apparaat via een ander apparaat te bedienen, is een functie die onderschat wordt. YouTube Music heeft deze functie niet, waardoor mensen gedwongen zijn om Spotify te gebruiken.

Hoe je een sneeuwbal laat ontploffen in Minecraft Bedrock & Java Edition

Hoe je een sneeuwbal laat ontploffen in Minecraft Bedrock & Java Edition

Met Minecraft-opdrachten kunnen spelers allerlei interessante effecten creëren. Een leuke optie is om sneeuwballen te laten ontploffen. Hier lees je hoe je exploderende sneeuwballen maakt in Minecraft.

Heeft uw computer een NPU? Zo controleer je het

Heeft uw computer een NPU? Zo controleer je het

In Windows 11 kunt u op 3 eenvoudige manieren snel controleren of uw computer een NPU (Neural Processing Unit) heeft.

Is de slaapstand slecht voor je pc?

Is de slaapstand slecht voor je pc?

De sluimerstand is ontstaan ​​uit de behoefte om de computer 24/7 aan te laten staan, zonder dat de accu leeg zou raken of dat het systeem last zou krijgen van stroomuitval. Dit in tegenstelling tot de slaapstand.