Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengekstrak Senarai Tindakan daripada Templat Go?

Bagaimana untuk mengekstrak Senarai Tindakan daripada Templat Go?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-12-17 04:16:25957semak imbas

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

Cara Mengakses Templat "Tindakan" dalam Go

Templat menyediakan cara yang berkesan untuk menjadikan data menjadi teks berstruktur. Dalam sesetengah kes, mungkin wajar untuk menyelidiki templat untuk menentukan senarai tindakan yang ditakrifkannya.

Struktur Templat

Templat yang dihuraikan diwakili sebagai pepohon nod. Setiap nod mewakili binaan khusus dalam templat, seperti teks, tindakan atau struktur kawalan.

Mengenal pasti Tindakan

Tindakan ialah nod yang mentakrifkan cara data perlu diambil atau diproses. Ia boleh digunakan untuk mengakses medan atau menggunakan fungsi dalam model data. Untuk mengenal pasti nod tindakan dalam pepohon, semak nod jenis parse.NodeAction.

Contoh Pelaksanaan

Berikut ialah fungsi contoh yang menjalankan pepohon templat secara rekursif dan mengumpulkan semua nod tindakan:

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
}

Fungsi ini mengembalikan sekeping rentetan yang mengandungi teks perwakilan setiap nod tindakan.

Penggunaan

Untuk menggunakan fungsi ini, huraikan templat dan kemudian panggil ListTemplateActions. Contohnya:

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

Output:

[{{.name}} {{.age}}]

Demonstrasi ini menunjukkan cara untuk mengenal pasti dan mendapatkan semula senarai tindakan yang ditakrifkan dalam templat yang dihuraikan, membolehkan anda menentukan input yang diharapkan dan bina model data secara dinamik dengan sewajarnya.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak Senarai Tindakan daripada Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn