suchen
HeimBackend-EntwicklungGolangSo initialisieren Sie Mitgliedsvariablen einer Struktur in der Go-Sprache

So initialisieren Sie Mitgliedsvariablen einer Struktur in der Go-Sprache

Jun 07, 2021 pm 03:31 PM
Gehen Sie SpracheInitialisierungMitgliedsvariablenStruktur

Initialisierungsmethode: 1. Verwenden Sie zum Initialisieren die Anweisung „ins: = Strukturtypname {Feld 1: Wert, Feld 2: Wert, ...}“, die zum selektiven Füllen von Strukturen mit vielen Feldern geeignet ist „ins: = Strukturtypname {Wert von Feld 1, Wert von Feld 2,...}“-Anweisungsinitialisierung, geeignet für Strukturen mit weniger Feldern.

So initialisieren Sie Mitgliedsvariablen einer Struktur in der Go-Sprache

Die Betriebsumgebung dieses Tutorials: Windows 10-System, GO 1.11.2, Dell G3-Computer.

Strukturen können Mitgliedsvariablen beim Instanziieren direkt initialisieren. Es gibt zwei Formen der Initialisierung: Die Initialisierung in Form von Schlüssel-Wert-Paaren eignet sich zum selektiven Füllen von Feldern Die Listenform mit mehr Strukturen und mehreren Werten eignet sich für Strukturen mit weniger ausgefüllten Feldern.

Verwenden Sie ein „Schlüssel-Wert-Paar“, um die Struktur zu initialisieren.

Die Struktur kann ein „Schlüssel-Wert-Paar“ (Schlüssel-Wert-Paar) verwenden, um die Felder zu initialisieren „Wert“ des Schlüssels entspricht dem Wert, auf den das Feld initialisiert werden muss.

Das Ausfüllen von Schlüssel-Wert-Paaren ist optional und Felder, die nicht initialisiert werden müssen, müssen nicht in der Initialisierungsliste ausgefüllt werden.

Der Standardwert des Felds nach der Instanziierung der Struktur ist der Standardwert des Feldtyps. Der Wert ist beispielsweise 0, die Zeichenfolge ist „“ (leere Zeichenfolge), der Boolesche Wert ist falsch, der Zeiger ist Null. usw.

1) Schreibformat der Schlüssel-Wert-Paar-Initialisierungsstruktur

Das Format der Schlüssel-Wert-Paar-Initialisierung ist wie folgt:

ins := 结构体类型名{
    字段1: 字段1的值,
    字段2: 字段2的值,
    …
}

Im Folgenden finden Sie eine Beschreibung jedes Teils:

  • Strukturtyp: der Typ bei der Definition des Strukturnamens.

  • Feld 1, Feld 2: Feldnamen von Strukturelementen, Feldnamen können nur einmal in der Feldinitialisierungsliste der Strukturtypnamen erscheinen.

  • Der Wert von Feld 1, der Wert von Feld 2: der Anfangswert des Strukturelementfelds.

Schlüsselwerte werden durch :分隔,键值对之间以, getrennt.

2) Beispiel für die Verwendung von Schlüssel-Wert-Paaren zum Füllen einer Struktur

Das folgende Beispiel beschreibt die Beziehung zwischen Charakteren in der Familie, genau wie das Kinderlied: „Papas Papa ist Opa“, mehrstufige Kinder können sein Wird zwischen Zeichen verwendet. Um Assoziationen zu beschreiben und herzustellen, lautet der Code zum Füllen der Struktur mithilfe von Schlüssel-Wert-Paaren wie folgt:

type People struct {
    name  string
    child *People
}
relation := &People{
    name: "爷爷",
    child: &People{
        name: "爸爸",
        child: &People{
                name: "我",
        },
    },
}

Die Codebeschreibung lautet wie folgt:

  • Zeile 1 definiert die Personenstruktur.

  • Zeile 2, String-Feld der Struktur.

  • Zeile 3, das Strukturzeigerfeld der Struktur, der Typ ist *Personen.

  • Zeile 6: Nachdem die Relation die Adresse vom Typ „People“ übernimmt, wird eine Instanz vom Typ *People gebildet.

  • Zeile 8: Beim Initialisieren des Kindes wird ein Wert vom Typ *People benötigt und die Adresse wird zum Initialisieren eines People verwendet.

Tipps: Strukturmitglieder können nur Zeigertypen der Struktur enthalten, die zu Kompilierungsfehlern führen.

Verwenden Sie eine Liste mit mehreren Werten, um die Struktur zu initialisieren.

Die Go-Sprache kann den „Schlüssel“ auf der Grundlage der „Schlüssel-Wert-Paar“-Initialisierung ignorieren, dh Sie können eine Liste mit mehreren Werten verwenden Werte zum Initialisieren des Strukturfelds.

1) Schreibformat der Initialisierungsstruktur für mehrere Wertelisten

Verwenden Sie Kommas, um mehrere Werte zu trennen, um die Struktur zu initialisieren, zum Beispiel:

ins := 结构体类型名{
    字段1的值,
    字段2的值,
    …
}

Bei der Initialisierung mit diesem Format müssen Sie Folgendes beachten:

  • Die Struktur muss alle Felder des Körpers initialisieren.

  • Die Füllreihenfolge jedes Anfangswerts muss mit der Deklarationsreihenfolge der Felder in der Struktur übereinstimmen.

  • Die Initialisierungsformen von Schlüssel-Wert-Paaren und Wertelisten können nicht gemischt werden.

2) Beispiele für Initialisierungsstrukturen mit mehreren Wertelisten

Das folgende Beispiel beschreibt eine Adressstruktur, und die Adressen müssen in einer bestimmten Reihenfolge vorliegen, zum Beispiel:

type Address struct {
    Province    string
    City        string
    ZipCode     int
    PhoneNumber string
}
addr := Address{
    "四川",
    "成都",
    610000,
    "0",
}
fmt.Println(addr)

Führen Sie den Code aus, die Ausgabe lautet wie folgt:

{四川 成都 610000 0}

Empfohlenes Lernen: Golang Tutorial

Das obige ist der detaillierte Inhalt vonSo initialisieren Sie Mitgliedsvariablen einer Struktur in der Go-Sprache. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
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
Wie erstellen Sie einen einfachen Webserver in Golang?Wie erstellen Sie einen einfachen Webserver in Golang?Aug 18, 2025 am 10:28 AM

Ja, mit dem NET/HTTP -Paket von GO können Sie problemlos einen einfachen Webserver erstellen, mit dem Routing -Verarbeitung, statische Dateidienste und strukturierte Prozessoren mit nur wenigen Codezeilen implementiert werden können. Starten Sie den Server mit http.listenandServe und hören Sie sich den angegebenen Port an und führen Sie schließlich gorunmain.go aus und besuchen Sie http: // localhost: 8080 im Browser, um den Effekt zu sehen. Der gesamte Prozess erfordert keine externen Abhängigkeiten und eignet sich für das Lernen und die Entwicklung kleiner Werkzeuge.

Gehen Sie gleichzeitige Programmierung: Verwenden Sie den Kanal, um die Kommunikation zwischen Goroutines zu implementierenGehen Sie gleichzeitige Programmierung: Verwenden Sie den Kanal, um die Kommunikation zwischen Goroutines zu implementierenAug 18, 2025 am 10:24 AM

Dieser Artikel untersucht den Kommunikationsmechanismus zwischen Goroutinen über Kanal in der GO -Sprache. Über den Beispielcode wird angezeigt, wie der Kanal zur Implementierung der Datenübertragung zwischen Goroutines und dem Umgang mit dem Lebenszyklus von Goroutine geeignet umgeht, um Probleme wie Ressourcenleckage und Deadlock zu vermeiden. Dieser Artikel soll den Lesern helfen, die Kernkonzepte der gleichzeitigen Programmierung zu verstehen und die Fähigkeiten der Verwendung von Kanal zu beherrschen.

So verwenden Sie das reflektierende Paket, um eine Methode in Go dynamisch aufzurufenSo verwenden Sie das reflektierende Paket, um eine Methode in Go dynamisch aufzurufenAug 18, 2025 am 10:18 AM

Um eine Methode dynamisch aufzurufen, müssen Sie reflektiert.Valueof verwenden, um den reflektierten Wert der Instanz zu erhalten, und dann den MethodeByName ("methodName") zu verwenden, isValid () zu überprüfen, die Parameter von [] Reflect.Value -Typ, Anrufaufruf (Args) vorzubereiten und den Rückgabewert zu extrahieren und schließlich das Ergebnis zu verarbeiten. 1. Verwenden Sie reflektiert. 2. Rufen Sie MethodeByName ("Add") auf, um die Methode zu erhalten. 3. Überprüfen Sie, ob die Methode gültig ist; 4. Bereiten Sie den Parameter auf [] reflektieren. Value {reflektieren

Konvertieren Sie Strings in Byte -Arrays fester Größe (GO -Sprache)Konvertieren Sie Strings in Byte -Arrays fester Größe (GO -Sprache)Aug 18, 2025 am 10:18 AM

In diesem Artikel wird die effektive Methode zum Konvertieren von Zeichenfolgen in Byte-Arrays mit fester Größe in GO-Sprache eingeführt und konzentriert sich darauf, wie Kopienfunktionen verwendet werden und Strukturliteraturen benannt werden, um Byte-Arrays elegant zu initialisieren. Es bietet auch Beispielcode, damit Entwickler gemeinsame Konvertierungsfehler von Typen vermeiden und eine effiziente Datenverarbeitung erreichen können.

Cross-Sprach-Client/Server-Zwei-Wege-RPC-LösungCross-Sprach-Client/Server-Zwei-Wege-RPC-LösungAug 18, 2025 am 10:15 AM

In diesem Artikel wird erläutert, wie die bidirektionale RPC-Kommunikation zwischen Client (wie PYQT) und Server (z. B. GO) in Kreuzungsumgebungen implementiert wird. Der Fokus liegt auf der Analyse des Schemas des Aufbaus der bidirektionalen Kommunikation mithilfe von RPC-Frameworks wie Sparsamkeit und der Erörterung von Alternativen wie WebSocket- und Protokollpuffern, die Entwickler bei der Auswahl einer geeigneten Cross-Sprach-Kommunikationslösung referenzieren.

So erstellen Sie einen mehrstufigen Docker-Build für eine Go-AppSo erstellen Sie einen mehrstufigen Docker-Build für eine Go-AppAug 18, 2025 am 10:12 AM

Verwenden Sie mehrstufige Docker, um kleine, sichere und effiziente Go-Anwendungsbilder zu erstellen. 2. In der ersten Stufe wird die Anwendung mit Golang: 1,22-Alpine zusammengestellt, und in der zweiten Stufe werden die staatlich kompilierten Binärdateien unter Verwendung der kleinsten Basisbilder wie Alpine, Disoless oder Kratzer ausgeführt. 3. Optimieren Sie die Konstruktionsgeschwindigkeit durch das erste Kopieren von Go.Mod und Go.Sum, Cache -Abhängigkeiten und verwenden Sie .Dockerignore, um irrelevante Dateien auszuschließen. V. 5. Um extreme Einfachheit zu erreichen, können Sie es verwenden.

GO Language Pack Importmechanismus Analyse: Die Vorteile der statischen Kompilierung und die Einschränkungen der dynamischen BelastungGO Language Pack Importmechanismus Analyse: Die Vorteile der statischen Kompilierung und die Einschränkungen der dynamischen BelastungAug 18, 2025 am 10:09 AM

Go Language nimmt einen statischen Paket -Importmechanismus an, der keine dynamische Belastung von Paketen über String -Pfade zur Laufzeit ermöglicht. Diese Designauswahl ist so konzipiert, dass die Kompiliererleistung optimiert, die Code -Verständlichkeit verbessert und leistungsstatische statische Analyse -Tools unterstützt werden. Die aktuelle GO -Laufzeitumgebung bietet keine dynamischen Belastungsfunktionen. Entwickler müssen alle Abhängigkeiten während der Zusammenstellung klären, um die Klarheit und Wartbarkeit des Codes sicherzustellen.

Wie kann ich mehrere Dateien mit GO einbetten?Wie kann ich mehrere Dateien mit GO einbetten?Aug 18, 2025 am 10:05 AM

Die Verwendung von embo.fs ist die empfohlene Möglichkeit, mehrere Dateien in Go1.16 einzubetten. 1. Sie können // go: embitsets/* verwenden, um alle Dateien in das Verzeichnis einzubetten und fs.readfile (assetsfs, "assets/hello.txt") zu verwenden; 2. Sie können auch mehrere angegebene Dateien explizit über //go:embedconfig.jsonlogo.pngreadme.md einbetten und über den entsprechenden Pfad zugegriffen werden. 3. Die eingebetteten Dateien sind schreibgeschützt und in binär zusammengestellt. Sie müssen sicherstellen, dass der variable Typ einbettet und der Pfad korrekt ist. 4.. Sie können die eingebetteten Dateien mit fs.walkdir oder durchqueren, oder

See all articles

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

EditPlus chinesische Crack-Version

EditPlus chinesische Crack-Version

Geringe Größe, Syntaxhervorhebung, unterstützt keine Code-Eingabeaufforderungsfunktion

mPDF

mPDF

mPDF ist eine PHP-Bibliothek, die PDF-Dateien aus UTF-8-codiertem HTML generieren kann. Der ursprüngliche Autor, Ian Back, hat mPDF geschrieben, um PDF-Dateien „on the fly“ von seiner Website auszugeben und verschiedene Sprachen zu verarbeiten. Es ist langsamer und erzeugt bei der Verwendung von Unicode-Schriftarten größere Dateien als Originalskripte wie HTML2FPDF, unterstützt aber CSS-Stile usw. und verfügt über viele Verbesserungen. Unterstützt fast alle Sprachen, einschließlich RTL (Arabisch und Hebräisch) und CJK (Chinesisch, Japanisch und Koreanisch). Unterstützt verschachtelte Elemente auf Blockebene (wie P, DIV),

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools

Heiße Themen