Methoden in Golang

Methoden in Golang  sind wie Funktionen, haben aber einen wesentlichen Unterschied: Sie haben ein Empfängerargument , das Zugriff auf die Eigenschaften des Empfängers gewährt . Der Empfänger kann ein Struktur- oder ein Nicht-Strukturtyp sein, beide müssen sich jedoch im selben Paket befinden. Methoden können nicht für Typen erstellt werden, die in anderen Paketen definiert sind, einschließlich integrierter Typen wie int oder string . Andernfalls gibt der Compiler einen Fehler aus.

Methoden in Golang

Zum Beispiel:

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

Ergebnis:

Name: a
Age: 25

Syntax

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

Empfänger: Kann mit dieser Methode aufgerufen werden.

Methode mit Empfänger vom Strukturtyp

In Go können Sie eine Methode definieren, deren Empfänger vom Typ „Struct“ ist. Der Empfänger ist innerhalb der Methode zugänglich. Das vorherige Beispiel veranschaulicht diesen Ansatz mit einem Empfänger vom Typ „Struct“.

Methode mit Empfänger ist kein Strukturtyp

Go erlaubt auch Methoden mit Nicht-Struktur-Empfängern, solange sich Empfängertyp und Methodendefinition im selben Paket befinden. Sie können keine Methode mit einem Empfängertyp aus einem anderen Paket (z. B. int, string) definieren.

Zum Beispiel:

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

Ergebnis:

Square of 4 is 16

Methode mit Empfängerzeiger

In Go können Methoden Zeigerempfänger haben. Dadurch können in der Methode vorgenommene Änderungen im Aufrufer widergespiegelt werden, was bei Wertempfängern nicht möglich ist.

Syntax:

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

Zum Beispiel:

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

Ergebnis:

Before: a
After: b

Die Methode akzeptiert sowohl Zeiger als auch Werte

Im Gegensatz zu Funktionen können Go-Methoden sowohl Wert- als auch Zeigerempfänger akzeptieren. Sie können entweder einen Zeiger oder einen Wert übergeben, und die Methode verarbeitet ihn entsprechend.

Zum Beispiel:

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

Ergebnis:

After pointer method: b
Name: b

Unterschied zwischen Methode und Funktion

Verfahren Kiefer
Enthält einen Empfänger Enthält keinen Empfänger
Es ist möglich, Methoden mit demselben Namen, aber unterschiedlichen Typen zu definieren. Funktionen mit gleichem Namen, aber unterschiedlichem Typ sind nicht zulässig.
Kann nicht als Superlativ verwendet werden Als übergeordnete Objekte nutzbar
Sign up and earn $1000 a day ⋙

Leave a Comment

2 Möglichkeiten zur Behebung von Netzwerküberlastungen, die das WLAN verlangsamen

2 Möglichkeiten zur Behebung von Netzwerküberlastungen, die das WLAN verlangsamen

WLAN-Netzwerke werden von vielen Faktoren beeinflusst, die über Router, Bandbreite und Störungen hinausgehen. Es gibt jedoch einige clevere Möglichkeiten, Ihr Netzwerk zu verbessern.

So führen Sie mit Tenorshare Reiboot ein Downgrade von iOS 17 auf iOS 16 ohne Datenverlust durch

So führen Sie mit Tenorshare Reiboot ein Downgrade von iOS 17 auf iOS 16 ohne Datenverlust durch

Wenn Sie auf Ihrem Telefon zur stabilen Version von iOS 16 zurückkehren möchten, finden Sie hier die grundlegende Anleitung zum Deinstallieren von iOS 17 und zum Downgrade von iOS 17 auf 16.

Was passiert mit dem Körper, wenn man täglich Joghurt isst?

Was passiert mit dem Körper, wenn man täglich Joghurt isst?

Joghurt ist ein tolles Lebensmittel. Ist es gesund, täglich Joghurt zu essen? Was passiert mit Ihrem Körper, wenn Sie täglich Joghurt essen? Finden wir es gemeinsam heraus!

Welche Reissorte ist am gesündesten?

Welche Reissorte ist am gesündesten?

In diesem Artikel werden die nahrhaftesten Reissorten besprochen und wie Sie den gesundheitlichen Nutzen der Reissorte Ihrer Wahl maximieren können.

So wachen Sie morgens pünktlich auf

So wachen Sie morgens pünktlich auf

Das Erstellen eines Schlafplans und einer Schlafenszeitroutine, das Ändern Ihres Weckers und die Anpassung Ihrer Ernährung sind einige der Maßnahmen, die Ihnen helfen können, besser zu schlafen und morgens pünktlich aufzuwachen.

Mieten Sie bitte! Vermieter-Sim-Tipps für Anfänger

Mieten Sie bitte! Vermieter-Sim-Tipps für Anfänger

Miete bitte! Landlord Sim ist ein Simulationsspiel für iOS und Android. Du spielst den Vermieter eines Apartmentkomplexes und vermietest eine Wohnung mit dem Ziel, die Innenausstattung deiner Wohnungen zu modernisieren und sie für die Vermietung vorzubereiten.

Neueste Badezimmer-Tower-Defense-Codes und wie man Codes eingibt

Neueste Badezimmer-Tower-Defense-Codes und wie man Codes eingibt

Hol dir Roblox-Spielcodes für Bathroom Tower Defense und löse sie gegen tolle Belohnungen ein. Damit kannst du Türme mit höherem Schaden verbessern oder freischalten.

Warum ChatGPT besser ist als DeepSeek

Warum ChatGPT besser ist als DeepSeek

In DeepSeek waren anfangs große Hoffnungen gesetzt. Der KI-Chatbot wurde als starker Konkurrent von ChatGPT vermarktet und versprach intelligente Konversationsfunktionen und -erlebnisse.

Lernen Sie Fireflies.ai kennen: Die kostenlose KI-Sekretärin, die Ihnen stundenlange Arbeit erspart

Lernen Sie Fireflies.ai kennen: Die kostenlose KI-Sekretärin, die Ihnen stundenlange Arbeit erspart

Beim Notieren anderer wichtiger Dinge übersieht man leicht wichtige Details. Und während des Chats Notizen zu machen, kann ablenkend sein. Fireflies.ai ist die Lösung.

Wie man Axolotl in Minecraft züchtet, Minecraft Salamander zähmt

Wie man Axolotl in Minecraft züchtet, Minecraft Salamander zähmt

Axolot Minecraft ist für Spieler ein großartiger Helfer bei Unterwasseroperationen, wenn sie wissen, wie man ihn benutzt.

A Quiet Place: The Road Ahead PC-Spielkonfiguration

A Quiet Place: The Road Ahead PC-Spielkonfiguration

Die Konfiguration von „A Quiet Place: The Road Aheads“ wird ziemlich hoch bewertet, Sie müssen also die Konfiguration berücksichtigen, bevor Sie sich zum Herunterladen entscheiden.

Die mysteriöse Kraft der Zahl 33 in der Numerologie

Die mysteriöse Kraft der Zahl 33 in der Numerologie

In der Numerologie gilt die Zahl 33 oft als kraftvolle und mystische Zahl. Hier erfahren Sie, was Sie über die Zahl 33 in der Numerologie wissen müssen.

Mikroplastik in Lebensmittelverpackungen kann das Herz schädigen und wie man dem vorbeugen kann

Mikroplastik in Lebensmittelverpackungen kann das Herz schädigen und wie man dem vorbeugen kann

Mikroplastik kann herzschädigend sein. Hier erfahren Sie alles Wissenswerte über diese schockierende Studie – und Expertentipps, wie Sie Ihre Gesundheit schützen können.

Was ist dunkle Energie?

Was ist dunkle Energie?

Dunkle Energie treibt die beschleunigte Expansion des Universums voran, doch ihre Natur bleibt ein völliges Rätsel. Hier erfahren Sie alles Wissenswerte über Dunkle Energie.

Gmail fügt blaues Häkchen hinzu, um „seriöse“ Absender zu überprüfen

Gmail fügt blaues Häkchen hinzu, um „seriöse“ Absender zu überprüfen

Mit der Entwicklung und Popularität von Social-Networking-Plattformen ist das blaue Häkchen seit langem zu einem der mächtigsten Zeichen in der Internetwelt geworden.