Heim >Backend-Entwicklung >Golang >Wie kann ich dynamisch auf Variablennamen in einem Go-Vorlagensystem zugreifen?

Wie kann ich dynamisch auf Variablennamen in einem Go-Vorlagensystem zugreifen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-25 05:25:15200Durchsuche

How Can I Dynamically Access Variable Names in a Go Template System?

So greifen Sie mithilfe von Reflection dynamisch auf Variablennamen zu

Frage:

In einer benutzerdefinierten Vorlage System, wie können wir die Namen der in einem Slice gespeicherten Variablen dynamisch abrufen? Konkret zielen wir darauf ab, Platzhalter in einer Vorlage (z. B. {{onevar}}) durch die entsprechenden Variablenwerte zu ersetzen.

Antwort:

Zugriff auf Variablennamen wie sie sind Das Erscheinen im Quellcode ist nicht möglich, wenn mit ihren in einem Slice gespeicherten Werten gearbeitet wird. Dies liegt daran, dass das Slice die Werte selbst enthält, keine Verweise auf die ursprünglichen Variablen oder deren Namen.

Beispielversuche:

Sie haben erwähnt, dass Sie versucht haben, Reflektion zu verwenden, um dies zu erreichen , aber es scheint ein Missverständnis zu geben. Reflection in Go stellt zur Laufzeit Informationen über Typen und Werte bereit, verfügt jedoch nicht über die Möglichkeit, Variablennamen aus ihren Werten abzurufen.

Lösung:

Um die gewünschte Funktionalität zu erreichen , wird empfohlen, eine Karte anstelle eines Slice zu verwenden. Eine Karte verknüpft Schlüssel mit Werten, wobei die Schlüssel als Bezeichner für die Werte verwendet werden können. Indem Sie die Variablennamen als Schlüssel und die Werte in einer entsprechenden Karte speichern, können Sie Platzhalter einfach durch die tatsächlichen Variablenwerte ersetzen.

Das obige ist der detaillierte Inhalt vonWie kann ich dynamisch auf Variablennamen in einem Go-Vorlagensystem zugreifen?. 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