Heim >Backend-Entwicklung >Golang >Wie initialisiere ich eine Struktur mit einem String-Zeiger und erlaube Nullwerte?

Wie initialisiere ich eine Struktur mit einem String-Zeiger und erlaube Nullwerte?

Barbara Streisand
Barbara StreisandOriginal
2024-11-14 17:17:02551Durchsuche

How to Initialize a Struct with a String Pointer and Allow for Nil Values?

Strukturzeiger-Initialisierung

Das Initialisieren einer Struktur mit einem String-Zeiger kann schwierig sein, insbesondere wenn der Standardwert Null sein sollte.

Problem

Beim Versuch, eine Struktur mit einem String-Zeiger als Standardwert zu initialisieren und bei der Initialisierung einen konstanten String zu verwenden, tritt ein Fehler auf:

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

Lösung

Um eine Struktur mit einem String-Zeiger zu initialisieren, der Null sein kann, müssen Sie dem Zeiger die Adresse einer Variablen und keinen konstanten Wert zuweisen. Hier ist ein modifizierter Code, der funktioniert:

type Config struct {
  Uri       *string
}

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

In diesem Fall enthält die Variable v den Standardzeichenfolgenwert. Indem wir seine Adresse mit dem &-Operator übernehmen und Uri zuweisen, erstellen wir einen String-Zeiger, der für Vergleiche verwendet werden kann und Null sein kann, wenn er nicht explizit festgelegt wird.

Das obige ist der detaillierte Inhalt vonWie initialisiere ich eine Struktur mit einem String-Zeiger und erlaube Nullwerte?. 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