Apabila mencipta pembolehubah global dalam pakej html/templat Go, memahami had skop adalah penting. Mengikut dokumentasi pakej, pembolehubah yang ditakrifkan dalam templat mempunyai skop terhad yang meliputi penghujung struktur kawalan (cth., jika, dengan, julat) di mana ia diisytiharkan.
Pertimbangkan kod HTML/templat berikut:
{{if .UserData}} {{$currentUserId := .UserData.UserId}} [<a href="#ask_question">Inside {{$currentUserId}}</a>] {{else}} {{$currentUserId := 0}} {{end}} [<a href="#ask_question">outside {{$currentUserId}}</a>]
Kod ini bertujuan untuk memaparkan ID pengguna semasa di dalam blok if dan 0 di luar blok. Walau bagaimanapun, keputusan menunjukkan 0 di kedua-dua tempat kerana skop $currentUserId yang terhad.
Go 1.11 memperkenalkan sokongan untuk mengubah suai nilai pembolehubah templat. Untuk memulakan pembolehubah, gunakan :=, seperti dalam:
{{$currentUserId := 0}}
Untuk mengemas kini nilainya, gunakan =, seperti dalam:
{{$currentUserId = .UserData.UserId}}
Dengan mengubah suai pembolehubah yang ditakrifkan di luar blok if , perubahan boleh diakses di dalam dan di luar blok.
Jika mengubah suai pembolehubah global adalah tidak sesuai, pertimbangkan alternatif ini:
Dengan memanfaatkan penyelesaian ini, anda boleh mencipta dan mengubah suai pembolehubah global dalam pakej html/templat Go, memastikan skop pembolehubah yang sesuai dan mencapai kefungsian yang diingini dalam anda templat.
Atas ialah kandungan terperinci Bagaimana untuk Mengurus Skop Pembolehubah Global dengan Berkesan dalam Templat HTML Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!