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!