Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengakses Medan Struktur dalam Templat HTML dalam Go Apabila Medan Tidak Dieksport?
Anda mahu mengakses medan struktur yang disimpan dalam peta menggunakan pakej html/template dalam Go.
Templat Go lalai tidak membenarkan akses kepada medan struct yang tidak dieksport. Untuk mendayakan ini, anda perlu mengeksport medan dengan menggunakan huruf besar pertama namanya.
Tentukan Struktur dengan Medan yang Dieksport:
<code class="go">type Task struct { cmd string args []string Desc string // Note the capital "D" }</code>
Mulakan Peta dengan Struktur yang Dieksport:
<code class="go">var taskMap = map[string]Task{ "find": Task{ cmd: "find", args: []string{"/tmp/"}, Desc: "find files in /tmp dir", }, "grep": Task{ cmd: "grep", args:[]string{"foo","/tmp/*", "-R"}, Desc: "grep files match having foo", }, }</code>
Uraikan dan Laksanakan Templat:
<code class="go">func listHandle(w http.ResponseWriter, r *http.Request) { t, _ := template.ParseFiles("index.tmpl") t.Execute(w, taskMap) }</code>
Fail Templat:
<code class="go"><html> {{range $key, $value := .}} <li>Task Name: {{$key}}</li> <li>Task Value: {{$value}}</li> <li>Task description: {{$value.Desc}}</li> {{end}} </html></code>
Templat kini akan dapat mengakses medan yang dieksport bagi struct Tugas dalam peta:
<code class="html"><html> <li>Task Name: find</li> <li>Task Value: {find [/tmp/] find files in /tmp dir}</li> <li>Task description: find files in /tmp dir</li> <li>Task Name: grep</li> <li>Task Value: {grep [foo /tmp/* -R] grep files match having foo}</li> <li>Task description: grep files match having foo</li> </html></code>
Atas ialah kandungan terperinci Bagaimana untuk Mengakses Medan Struktur dalam Templat HTML dalam Go Apabila Medan Tidak Dieksport?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!