Heim >Backend-Entwicklung >Golang >Wie initialisiere ich einen String-Zeiger in einer Go-Struktur?

Wie initialisiere ich einen String-Zeiger in einer Go-Struktur?

Linda Hamilton
Linda HamiltonOriginal
2024-11-14 16:00:03989Durchsuche

How to Initialize a String Pointer in a Go Struct?

Initialisieren eines String-Zeigers in einer Go-Struktur

In Go können Strukturen Zeiger auf andere Werte, einschließlich Strings, enthalten. Während es einfach ist, Strings direkt in Strukturen zu initialisieren, kann das Initialisieren von String-Zeigern eine Herausforderung darstellen.

Problem

Beim Versuch, eine Struktur mit einem String-Zeiger (*string) zu initialisieren ) als Standardwert, ein Fehler tritt auf:

cannot use "string" (type string) as type *string in field value

Lösung

Um einen String-Zeiger in einer Struktur zu initialisieren, können Sie ihm keinen konstanten String-Wert direkt zuweisen. Erstellen Sie stattdessen eine Variable, weisen Sie ihr den Wert zu und übergeben Sie dann die Adresse der Variablen an den String-Zeiger:

type Config struct {
  Uri       *string
}

func init() {
  v := "my:default"
  var config = Config{ Uri: &v }
}

Durch die Verwendung des &-Operators erhalten Sie die Adresse der Variablen (&v), die kann dann dem String-Zeiger zugewiesen werden. Dies ermöglicht den Vergleich zweier Strukturinstanzen, bei denen Uri Null sein kann, wenn es nicht festgelegt ist.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich einen String-Zeiger in einer Go-Struktur?. 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