Heim > Backend-Entwicklung > Golang > Golang-Methoden und -Funktionen

Golang-Methoden und -Funktionen

WBOY
Freigeben: 2023-05-14 14:01:08
Original
566 Leute haben es durchsucht

Golang ist eine moderne Programmiersprache mit vielen exquisiten Designs, einschließlich der Konzepte von Methoden und Funktionen. Methoden und Funktionen sind grundlegende Konzepte, mit denen Golang-Programmierer vertraut sein müssen. In diesem Artikel werden ihre Ähnlichkeiten und Unterschiede erläutert.

1. Funktion

Die Funktion ist eine der Grundkomponenten des Golang-Programms. Sie besteht aus Funktionsname, Parameterliste, Rückgabewerttyp und Funktionskörper. Die Syntax lautet wie folgt:

func 函数名(参数列表)(返回值类型){
     函数体
}
Nach dem Login kopieren

Hier ist ein einfaches Beispiel:

func sum(a int, b int) int {
     return a + b
}
Nach dem Login kopieren

Diese Funktion heißt sum. Sie erfordert zwei Parameter a und b vom Typ int und der Rückgabewerttyp ist int. Der Funktionskörper enthält eine Return-Anweisung, um die Summe von a und b zurückzugeben.

Die Funktion wird wie folgt aufgerufen:

c := sum(1, 2) //c的值为3
Nach dem Login kopieren

2. Methoden

Methoden sind Funktionen, die einem bestimmten Typ zugeordnet sind. In Golang besteht der Ansatz darin, typspezifische Funktionsdefinitionen für Ihren eigenen Typ festzulegen, sodass diese Funktionen für alle Instanzen dieses Typs aufgerufen werden.

Methoden werden wie Funktionen definiert, jedoch mit einem zusätzlichen Empfängerparameter. Es teilt der Methode mit, welcher Werttyp aufgerufen werden soll. Die allgemeine Syntax der Methode lautet wie folgt:

func (接收器变量 接收器类型) 方法名(参数列表)(返回值类型){
     函数体
}
Nach dem Login kopieren

Hier ist ein einfaches Beispiel:

type Person struct {
     Name string
     Age  int
}

func (p Person) SayHello() string {
     return "Hello, my name is " + p.Name
}

func main() {
     p := Person{Name: "Tom", Age: 18}
     fmt.Println(p.SayHello()) //输出结果为 "Hello, my name is Tom"
}
Nach dem Login kopieren

In diesem Beispiel definieren wir eine Struktur vom Typ Person und definieren darauf eine SayHello-Methode. Die Methode legt den Empfängertyp auf den Typ „Person“ fest und gibt damit an, dass die Methode in allen Instanzen aufgerufen wird.

Wir erstellen eine Person-Instanz mit dem Namen p und rufen dann deren SayHello-Methode auf. Es wird eine Zeichenfolge zurückgegeben, die den Namen der Instanz darstellt.

3. Der Unterschied zwischen Funktionen und Methoden

  1. Eine Funktion ist ein Code, der überall aufgerufen werden kann, während eine Methode Code ist, der einem bestimmten Typ zugeordnet ist.
  2. Methoden müssen über das Objekt aufgerufen werden, zu dem sie gehören, während Funktionen direkt aufgerufen werden können.
  3. Methoden können auf die privaten Daten des Objekts zugreifen, Funktionen jedoch nicht.
  4. Methoden haben Empfängerparameter, Funktionen nicht.
  5. Methoden können überschrieben werden, Funktionen jedoch nicht.

4. Zusammenfassung

Golang-Methoden und -Funktionen sind die Grundkomponenten für die Erstellung von Golang-Programmen. Eine Funktion ist ein unabhängiger, wiederverwendbarer Codeblock, der von jedem und überall aufgerufen werden kann. Eine Methode hingegen ist ein Codeblock, der einem bestimmten Typ zugeordnet ist und nur über ein Objekt dieses Typs aufgerufen werden kann.

Durch das Erlernen von Methoden und Funktionen können wir besser programmieren und entwickeln. Wenn Sie mehr über Golang im Detail erfahren möchten, lesen Sie bitte die entsprechende Golang-Dokumentation und Tutorials.

Das obige ist der detaillierte Inhalt vonGolang-Methoden und -Funktionen. 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