Bagaimana untuk Mengakses Medan Struktur dalam Templat HTML dalam Go Apabila Medan Tidak Dieksport?

Susan Sarandon
Lepaskan: 2024-10-24 07:55:30
asal
545 orang telah melayarinya

How to Access Struct Fields in HTML Templates in Go When Fields Are Unexported?

Cara Mengakses Medan Struktur dalam Templat HTML dalam Go

Masalah

Anda mahu mengakses medan struktur yang disimpan dalam peta menggunakan pakej html/template dalam Go.

Penyelesaian

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.

Contoh Kod

Tentukan Struktur dengan Medan yang Dieksport:

<code class="go">type Task struct {
   cmd string
   args []string
   Desc string // Note the capital "D"
}</code>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

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>
Salin selepas log masuk

Output

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>
Salin selepas log masuk

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!

sumber:php
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!