Heim Backend-Entwicklung Golang Belegen formale Parameter in der Go-Sprache den Speicher?

Belegen formale Parameter in der Go-Sprache den Speicher?

Dec 28, 2022 pm 05:19 PM
golang go语言 函数

Formale Parametervariablen belegen keinen Speicher, wenn kein Funktionsaufruf erfolgt, sondern nur, wenn die Funktion aufgerufen wird, und der Speicher wird nach Abschluss des Aufrufs freigegeben. Der vollständige Name des formalen Parameters lautet „formaler Parameter“. Dabei handelt es sich um den Parameter, der bei der Definition der Funktion verwendet wird. Die Parameter verfügen jedoch bei der Definition der Funktion über keine tatsächlichen Daten, sodass dem formalen Parameter zuvor kein Speicher zugewiesen wird Die Funktion wird aufgerufen. Ihre Funktion besteht darin, den Typ der unabhängigen Variablen sowie ihre Form und Rolle im Prozess anzugeben.

Belegen formale Parameter in der Go-Sprache den Speicher?

Die Betriebsumgebung dieses Tutorials: Windows 7-System, GO Version 1.18, Dell G3-Computer.

Funktion ist ein organisiertes, wiederverwendbares Codesegment, das zur Implementierung einer einzelnen oder verwandten Funktion verwendet wird, was die Modularität der Anwendung und die Wiederverwendungsrate des Codes verbessern kann.

Funktionsdefinition und Funktionsaufruf

Funktion stellt die logische Struktur der Codeausführung dar. In der Go-Sprache sind die Grundkomponenten einer Funktion: Schlüsselwort func, Funktionsname, Parameterliste, Rückgabewert, Funktionskörper und Rückgabe Anweisungen: Jedes Programm enthält viele Funktionen, und Funktionen sind grundlegende Codeblöcke.

Definitionssyntax:

func 函数名(形参列表)(返回值类型列表) {
  函数体,通常会有return语句,返回值
}
Nach dem Login kopieren
  • Funktionsname: Der Bezeichner der Funktion, der zum Auffinden der Funktion verwendet wird und intern eine Adresse ist, die auf den Funktionscode verweist.

  • Formale Parameterliste: bestehend aus Variablen und Typen

  • Liste der Rückgabewerttypen: Der Typ des Funktionsrückgabewerts. Es müssen mehrere Rückgabewerte angegeben werden.

  • Funktionskörper: Spezifische Anweisungen, die Funktionsfunktionen implementieren. Rückgabeanweisung: Rückgabewertanweisung

Funktionsaufrufsyntax:

函数名(实参列表)
Nach dem Login kopieren

Funktionsparameter

werden verwendet, um beim Aufrufen der Funktion Daten an die Funktion zu übergeben.

  • tatsächliche Parameter, tatsächliche Parameter. Beim Aufruf angegebene Parameter. Bezieht sich auf Parameter mit spezifischen tatsächlichen Daten.

  • Formale Parameter, formale Parameter. Beim Definieren verwendete Parameter. Das bedeutet, dass die Funktion Parameter erfordert, die Parameter jedoch keine tatsächlichen Daten haben, wenn sie definiert werden. Funktionen/Methoden weisen vor dem Aufruf keinen Speicher zu. Ihre Funktion besteht darin, die Art und Form der unabhängigen Variablen und ihre Rolle im Prozess zu beschreiben.

    Die Beziehung zwischen tatsächlichen und formalen Parametern: Formale Parameter können nur Variablen sein (ihr Datentyp muss angegeben werden); tatsächliche Parameter können Variablen, Konstanten oder Ausdrücke sein.

    Die Anzahl und Position der tatsächlichen und formalen Parameter sowie deren entsprechende Datentypen sollten konsistent sein.

Beim Aufruf erfolgt der Prozess der Zuweisung von Werten zu formalen Parametervariablen unter Verwendung tatsächlicher Parameter, der als Parameterübertragung bezeichnet wird. Während der Ausführung der Funktion enthalten die formalen Parameter bestimmte Daten und die formalen Parameter entsprechen den in der Funktion deklarierten Variablen. Die Übergabe von Parametern ist in zwei Methoden unterteilt: Wertübergabe und Adressübergabe. Wenn die Adresse übergeben wird, muss der formale Parameter als Zeigertyp definiert werden und der Adressparameter muss beim Aufruf abgerufen werden.

  • Wenn der eigentliche Parameter beim Aufruf der Funktion ein Array-Name ist, wird die erste Adresse des Arrays an den formalen Parameter übergeben.

  • Die Übergabe tatsächlicher Parameter an formale Parameter erfolgt in eine Richtung. Formale Parametervariablen belegen keinen Speicher, wenn kein Funktionsaufruf erfolgt, sondern nur, wenn sie aufgerufen werden. Der Speicher wird nach Abschluss des Anrufs freigegeben.

Beispielcode:

func funcTest(p1 int, p2 *int) {
  p1++
  *p2++
  fmt.Println(p1, *p2)
}
func main() {
  var (
    a1 = 42
    a2 = 42
  )
  funcTest(a1, &a2)
  // 参数赋值过程
  fmt.Println(a1, a2)
}
Nach dem Login kopieren

Das Obige gibt

43 43
42 43
Nach dem Login kopieren

aus[Verwandte Empfehlungen: Go-Video-Tutorial, Programmierunterricht]

Das obige ist der detaillierte Inhalt vonBelegen formale Parameter in der Go-Sprache den Speicher?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Was ist das Problem mit Warteschlangen -Thread in Go's Crawler Colly? Apr 02, 2025 pm 02:09 PM

Das Problem der Warteschlange Threading In Go Crawler Colly untersucht das Problem der Verwendung der Colly Crawler Library in Go -Sprache. Entwickler stoßen häufig auf Probleme mit Threads und Anfordern von Warteschlangen. � ...

Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Welche Bibliotheken werden für die Operationen der schwimmenden Punktzahl in Go verwendet? Apr 02, 2025 pm 02:06 PM

In der Bibliothek, die für den Betrieb der Schwimmpunktnummer in der GO-Sprache verwendet wird, wird die Genauigkeit sichergestellt, wie die Genauigkeit ...

Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Warum hat das Drucken von Saiten mit Println und String () -Funktionen unterschiedliche Effekte? Apr 02, 2025 pm 02:03 PM

Der Unterschied zwischen Stringdruck in GO -Sprache: Der Unterschied in der Wirkung der Verwendung von Println und String () ist in Go ...

Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Wie löste ich das Problem des Typs des user_id -Typs bei der Verwendung von Redis -Stream, um Nachrichtenwarteschlangen in GO -Sprache zu implementieren? Apr 02, 2025 pm 04:54 PM

Das Problem der Verwendung von RETISTREAM zur Implementierung von Nachrichtenwarteschlangen in der GO -Sprache besteht darin, die Go -Sprache und Redis zu verwenden ...

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Apr 02, 2025 pm 05:09 PM

Was soll ich tun, wenn die benutzerdefinierten Strukturbezeichnungen in Goland nicht angezeigt werden? Bei der Verwendung von Goland für GO -Sprachentwicklung begegnen viele Entwickler benutzerdefinierte Struktur -Tags ...

Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Welche Bibliotheken in GO werden von großen Unternehmen entwickelt oder von bekannten Open-Source-Projekten bereitgestellt? Apr 02, 2025 pm 04:12 PM

Welche Bibliotheken in GO werden von großen Unternehmen oder bekannten Open-Source-Projekten entwickelt? Bei der Programmierung in Go begegnen Entwickler häufig auf einige häufige Bedürfnisse, ...

Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Was ist der Unterschied zwischen 'var' und 'Typ' Typenwort Definition in der GO -Sprache? Apr 02, 2025 pm 12:57 PM

Zwei Möglichkeiten, Strukturen in der GO -Sprache zu definieren: Der Unterschied zwischen VAR- und Typ -Schlüsselwörtern. Bei der Definition von Strukturen sieht die Sprache oft zwei verschiedene Schreibweisen: Erstens ...

Wie kann sichergestellt werden, dass die Parallelität beim Schreiben von Multi-Process-Protokollen sicher und effizient ist? Wie kann sichergestellt werden, dass die Parallelität beim Schreiben von Multi-Process-Protokollen sicher und effizient ist? Apr 02, 2025 pm 03:51 PM

Effizient behandeln Probleme mit der Parallelitätssicherheit beim Schreiben von Multi-Process-Protokoll. Mehrere Prozesse schreiben gleichzeitig die gleiche Protokolldatei. Wie kann die Parallelität sicher und effizient sichergestellt werden? Das ist ein ...

See all articles