Heim > Backend-Entwicklung > Golang > Wie extrahiere ich eine Liste von Aktionen aus einer Go-Vorlage?

Wie extrahiere ich eine Liste von Aktionen aus einer Go-Vorlage?

Mary-Kate Olsen
Freigeben: 2024-12-17 04:16:25
Original
955 Leute haben es durchsucht

How to Extract a List of Actions from a Go Template?

So greifen Sie in Go auf Vorlagen-„Aktionen“ zu

Vorlagen bieten eine leistungsstarke Möglichkeit, Daten in strukturierten Text umzuwandeln. In manchen Fällen kann es wünschenswert sein, eine Vorlage zu untersuchen, um die Liste der Aktionen zu bestimmen, die sie definiert.

Vorlagenstruktur

Eine analysierte Vorlage wird als Baum dargestellt Knoten. Jeder Knoten stellt ein bestimmtes Konstrukt innerhalb der Vorlage dar, z. B. Text, Aktionen oder Kontrollstrukturen.

Aktionen identifizieren

Aktionen sind Knoten, die definieren, wie Daten abgerufen werden sollen oder verarbeitet. Sie können verwendet werden, um auf Felder zuzugreifen oder Funktionen im Datenmodell aufzurufen. Um Aktionsknoten im Baum zu identifizieren, suchen Sie nach Knoten vom Typ parse.NodeAction.

Beispielimplementierung

Hier ist eine Beispielfunktion, die den Vorlagenbaum rekursiv durchläuft und alle sammelt Aktionsknoten:

func ListTemplateActions(t *template.Template) []string {
    return listNodeActions(t.Tree.Root, nil)
}

func listNodeActions(node parse.Node, res []string) []string {
    if node.Type() == parse.NodeAction {
        res = append(res, node.String())
    }

    if ln, ok := node.(*parse.ListNode); ok {
        for _, n := range ln.Nodes {
            res = listNodeActions(n, res)
        }
    }

    return res
}
Nach dem Login kopieren

Diese Funktion gibt einen Abschnitt von Zeichenfolgen zurück, der die Textdarstellung von enthält Jeder Aktionsknoten.

Verwendung

Um diese Funktion zu verwenden, analysieren Sie die Vorlage und rufen Sie dann ListTemplateActions auf. Zum Beispiel:

t := template.Must(template.New("test").
    Parse(`<p>{{ .name }} - {{ .age }}</p>`))
fmt.Println(ListTemplateActions(t))
Nach dem Login kopieren

Ausgabe:

[{{.name}} {{.age}}]
Nach dem Login kopieren

Diese Demonstration zeigt, wie Sie eine Liste von Aktionen identifizieren und abrufen, die in einer analysierten Vorlage definiert sind, sodass Sie die erwartete Eingabe bestimmen und abrufen können Konstruieren Sie das Datenmodell dynamisch entsprechend.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich eine Liste von Aktionen aus einer Go-Vorlage?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage