Detaillierte Erläuterung der Golang-Methoden

PHPz
Freigeben: 2023-04-25 15:32:20
Original
667 Leute haben es durchsucht

Go-Sprache (Golang) hat als aufstrebende Hochleistungsprogrammiersprache in den letzten Jahren im Entwicklungsbereich immer mehr Aufmerksamkeit und Unterstützung erhalten. Unter anderem ist die Go-Methode ein wichtiges Merkmal der Go-Sprache. Sie bietet nicht nur eine bequemere Möglichkeit, Code zu organisieren, sondern ermöglicht auch eine bessere Wiederverwendung und Wartung des Codes. Im Folgenden werden die Konzepte, Typen, Definitionen und Verwendung von Go-Methoden vorgestellt.

1. Das Konzept der Methode

In der Go-Sprache ist eine Methode eine Funktion, die einem bestimmten Typ zugeordnet ist und für diesen Typ aufgerufen werden kann. Methoden werden normalerweise mit einem Empfängerparameter definiert, wobei der Empfängerparameter den Typ darstellt, für den die Methode aufgerufen wird. Über diesen Empfängerparameter kann die Methode auf alle Eigenschaften und Methoden des Typs zugreifen, um die Funktion der Datenverarbeitung zu implementieren.

Zum Beispiel können Sie für einen Strukturtyp Person eine Methode SayHello definieren, die einen Zeichenfolgentyp zurückgibt:

type Person struct {

name string
age  int
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
#🎜🎜 #}

func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
}

Im obigen Code ist die Methode SayHello als Empfänger definiert p Person wird erstellt, und die Attribute Name und Alter des Empfängers werden in der Methode verwendet, und schließlich wird eine Begrüßung vom Typ Zeichenfolge zurückgegeben. Nachdem diese Methode definiert wurde, kann sie über eine Instanz des Person-Typs aufgerufen werden.

2. Methodentypen

Go-Methoden können in zwei Typen unterteilt werden: Wertempfänger und Zeigerempfänger.

Der Werttypempfänger (d. h. eine Kopie des Instanzwerts) wird normalerweise in Szenarien verwendet, in denen der interne Status der Instanz nicht geändert werden muss. Er ist definiert als:

func (p Person) SayHello () string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
}

Der Zeigertypempfänger (d. h. der Zeiger der Instanz) wird normalerweise in Szenarien verwendet wobei der interne Status der Instanz geändert werden muss. Er ist definiert als: #🎜 🎜#

func (p *Person) CreatingAge() {

p.age++
Nach dem Login kopieren
Nach dem Login kopieren

}

# 🎜🎜#Im obigen Code definiert die Methode CreatingAge einen Empfänger p #🎜🎜 #Person und ändert das Altersattribut des Empfängers in der Methode. Beachten Sie, dass der Zeigertypempfänger einen Zeiger auf den Typ oder einen Typ empfangen kann, der eine Adresse erfordert. Das „*“ ist hier die Zeigertypbedeutung .

3. Definition von Methoden

Es gibt zwei Möglichkeiten, Go-Methoden zu definieren, und die andere darin, die Funktion zu übergeben außerhalb des Typs. Definieren Sie eine Methode.

Die Art und Weise, eine Methode bei der Typdeklaration zu definieren, ist wie folgt:

type Person struct {

name string
age  int
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
}

#🎜🎜 #func ( p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}

Im obigen Code ist die Methode SayHello innerhalb des Person-Typs definiert.

Die Art und Weise, Methoden durch Funktionen außerhalb des Typs zu definieren, ist wie folgt:

type Person struct {

name string
age  int
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

}

#🎜 🎜# func (p Person) SayHello() string {

return "Hello, my name is " + p.name + ", I'm " + strconv.Itoa(p.age) + " years old."
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren
}

func (p *Person) CreatingAge() {

p.age++
Nach dem Login kopieren
Nach dem Login kopieren
} #🎜 🎜#

Im obigen Code wird die Methode CreatingAge über eine Funktion definiert und außerhalb des Person-Typs hinzugefügt.

4. Verwendung von Methoden

Die Methode ähnelt anderen Funktionen und kann auf zwei Arten aufgerufen werden:

1 des Typs heißt.

p := Person{Name: „Tom“, Alter: 18}

p.SayHello() // Hallo, mein Name ist Tom, ich bin 18 Jahre alt.#🎜 🎜#

2. Aufruf über Typzeiger.

pp := &Person{name: „Jack“, Alter: 20}

pp.IncreaseAge() // Ändere das Altersattribut von pp, zu diesem Zeitpunkt pp.age=21.

Das Obige ist eine detaillierte Einführung in Go-Methoden. Für Entwickler, die Go zum Entwickeln verwenden, sei es über Strukturen oder Schnittstellentypen, kann die Anwendung von Go-Methoden eine bessere Wiederverwendung und Wartung des Codes erreichen.

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Golang-Methoden. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!