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

Teslaspule kann Strom entladen und singen

Teslaspule kann Strom entladen und singen

Die Teslaspule ist ein Resonanztransformatorkreis und eine berühmte Erfindung des genialen Nikola Tesla. Sie wird zur Erzeugung von Wechselstrom mit hoher Spannung, niedriger Intensität und hoher Frequenz verwendet. Sie entlädt nicht nur Strom, sondern bringt Teslaspulen mit Intelligenz und Kreativität auch zum Singen.

Transport eines 220 Tonnen schweren antiken Gebäudes mit 700 Stück Seife

Transport eines 220 Tonnen schweren antiken Gebäudes mit 700 Stück Seife

Anfang Dezember konnte das Bauunternehmen S. Rushton in Halifax im kanadischen Nova Scotia mithilfe von rund 700 Seifenstücken erfolgreich ein uraltes Gebäude mit einem Gewicht von bis zu 220 Tonnen über eine Distanz von 9 Metern bewegen.

Überschalltriebwerk erreicht Geschwindigkeit von 19.756 km/h

Überschalltriebwerk erreicht Geschwindigkeit von 19.756 km/h

Chinesische Forscher für Hyperschallwaffen entwickeln den weltweit stärksten Rotationssprengstoffmotor, der es Flugzeugen ermöglicht, in einer Höhe von 30 km mit 19.756 km/h (Mach 16) zu fliegen.

KI-Tierübersetzung hilft Menschen, Hundegebell zu verstehen

KI-Tierübersetzung hilft Menschen, Hundegebell zu verstehen

Dank künstlicher Intelligenz (KI) könnte das, was wie ein Filmtraum klingt – dass Menschen die Sprache der Tiere verstehen – bald Wirklichkeit werden.

Was bewirken die Kameraeinstellungen Ihres Telefons?

Was bewirken die Kameraeinstellungen Ihres Telefons?

Zu wissen, was jede Funktion bewirkt, kann den Unterschied zwischen einem guten und einem großartigen Foto ausmachen.

So verwenden Sie Konstanten in Golang

So verwenden Sie Konstanten in Golang

Was ist eine Konstante oder Konstante in Golang? Hier erfahren Sie, was Sie über die Verwendung von Konstanten in Go wissen müssen.

Ultimate Evolution Code: Neuester Saiyajin und wie man den Code eingibt

Ultimate Evolution Code: Neuester Saiyajin und wie man den Code eingibt

Code Ultimate Evolution Saiyan gibt den Spielern eine Reihe attraktiver Belohnungen und dank dessen im frühen Spiel wie Diamanten, Exp, Exp-Kapseln, Gold, Charakterfragmente

So bearbeiten Sie ein Vorschaufoto im Instagram-Profil

So bearbeiten Sie ein Vorschaufoto im Instagram-Profil

Instagram hat kürzlich sein Profilraster-Layout auf eine vertikale 4:5-Vorschau umgestellt. Nutzer können das Vorschaubild nach Belieben anpassen, um den Fokus auf die gewünschten Inhalte zu legen.

Code Monkey King: Reise in den Westen, spätestens 25.04.2025

Code Monkey King: Reise in den Westen, spätestens 25.04.2025

Code Monkey King gibt den Spielern eine Reihe attraktiver Belohnungen wie Währung, 5-Sterne-Zufallscharakterfragmente, Nine Revolutions Golden Pill, zufällige Ressourcenpakete

So optimieren Sie Google Chrome für einen superschnellen Start

So optimieren Sie Google Chrome für einen superschnellen Start

Wir alle kennen das: Man klickt auf das Chrome-Symbol und wartet, bis der Browser startet. Das scheinbar endlose Warten, bis die Startseite geladen ist, kann frustrierend sein.

So erstellen Sie Aufkleber aus Fotos auf Samsung

So erstellen Sie Aufkleber aus Fotos auf Samsung

Auf einigen Samsung Galaxy-Telefonen besteht die Möglichkeit, Sticker aus Fotos im Album zu erstellen, sodass Benutzer frei Sticker erstellen und in Nachrichten verwenden können.

So beheben Sie, dass der Task-Manager unter Windows nicht funktioniert

So beheben Sie, dass der Task-Manager unter Windows nicht funktioniert

Benutzer können den Task-Manager nicht verwenden, wenn er nicht funktioniert. So beheben Sie das Problem, wenn der Task-Manager auf einem Windows 11/10-PC nicht funktioniert.

Neuester Code von Absolute God of War

Neuester Code von Absolute God of War

Der neueste Code Dau Than Tuyet The gibt Spielern Münzen, Goldbarren und viele andere Gegenstände, darunter Nguyen Phach, Geschenkboxen, Truhen, Trac Viet Stones …

Legendärer Drachengott-Code und wie man den Code eingibt

Legendärer Drachengott-Code und wie man den Code eingibt

Die Belohnungen für den Geschenkcode „Legendärer Drachengott“ bestehen hauptsächlich aus Gold und Diamanten. Außerdem gibt es Bonustruhen, Steine ​​und Wiederherstellungsgegenstände …

So verwandeln Sie ein Foto mit der Funktion „Generative Füllung“ in Photoshop in ein Gemälde

So verwandeln Sie ein Foto mit der Funktion „Generative Füllung“ in Photoshop in ein Gemälde

Egal, ob Sie Ihr Foto in ein Aquarell, ein Ölgemälde oder eine andere Art von Gemälde verwandeln möchten, hier erfahren Sie, wie Sie den Effekt mit Generative Fill in Photoshop erzielen.