Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk mengekstrak Senarai Tindakan daripada Templat Go?
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!