Rumah > pembangunan bahagian belakang > Golang > Bagaimana untuk Lulus Berbilang Nilai Antara Templat Go?

Bagaimana untuk Lulus Berbilang Nilai Antara Templat Go?

Linda Hamilton
Lepaskan: 2024-12-04 16:33:10
asal
355 orang telah melayarinya

How to Pass Multiple Values Between Go Templates?

Melalui Berbilang Nilai Antara Templat Go

Apabila bekerja dengan templat Go, anda mungkin perlu menghantar berbilang nilai antara templat. Walau bagaimanapun, tindakan {{template}} pakej teks/template hanya menyokong penghantaran nilai data pilihan tunggal. Ini menimbulkan persoalan tentang cara memindahkan berbilang elemen data dengan berkesan. Satu pendekatan adalah untuk menyatukan data menjadi satu nilai. Go menyediakan dua pilihan: membungkus data ke dalam struct atau menggunakan peta.

Membungkus Ke Dalam Struktur

Salah satu kaedah ialah mencipta struct yang merangkum data yang anda ingin pindahkan. Struktur ini kemudiannya boleh dihantar ke templat dan digunakan dengan notasi titik untuk mengakses elemen data individu dalam templat. Berikut ialah contoh:

type DataWrapper struct {
    Shops      []Destination
    CityName   string
    RegionName string
}
Salin selepas log masuk

Membungkus ke dalam Peta

Jika menggunakan struct menyusahkan, anda juga boleh membungkus data ke dalam peta mudah. Kekunci peta akan mewakili nama elemen data, dan nilai peta akan menjadi nilai data sebenar. Berikut ialah contoh:

func Wrap(shops []Destination, cityName, regionName string) map[string]interface{} {
    return map[string]interface{}{
        "Shops":      shops,
        "CityName":   cityName,
        "RegionName": regionName,
    }
}
Salin selepas log masuk

Menyepadukan Dengan Fungsi Tersuai

Setelah anda membungkus data anda ke dalam struct atau peta, anda boleh menggunakan fungsi tersuai untuk menghantar data ini kepada templat. Fungsi tersuai boleh didaftarkan dengan kaedah Template.Funcs() dan anda mesti melakukan ini sebelum menghuraikan teks templat. Berikut ialah contoh menggunakan fungsi tersuai untuk menghantar data:

const src = `
{{define "data"}}
    City: {{.CityName}}, Region: {{.RegionName}}, Shops: {{.Shops}}
{{end}}
{{- range . -}}
        {{$city:=.Name}}
        {{- range .Regions -}}
              {{$region:=.Name}}
              {{- template "data" (Wrap .Shops $city $region) -}}
        {{end}}
{{- end}}`
Salin selepas log masuk

Kesimpulan

Dengan menstruktur data anda menjadi satu nilai dan menggunakan fungsi tersuai, anda boleh menghantar berbilang nilai dengan berkesan antara templat Go . Ini membolehkan anda berkongsi struktur data yang kompleks dengan cekap antara bahagian berlainan templat anda, meningkatkan kefleksibelan dan kebolehselenggaraan aplikasi web Go anda.

Atas ialah kandungan terperinci Bagaimana untuk Lulus Berbilang Nilai Antara Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
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