Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah Saya Boleh Memaparkan Kandungan Berbeza Berdasarkan Objek Tiada dan Nilai Harta dalam Templat Go?

Bagaimanakah Saya Boleh Memaparkan Kandungan Berbeza Berdasarkan Objek Tiada dan Nilai Harta dalam Templat Go?

Barbara Streisand
Barbara Streisandasal
2024-11-21 06:44:09549semak imbas

How Can I Display Different Content Based on a Nil Object and Property Values in Go Templates?

Membenarkan Nilai Nil dalam Keadaan Templat

Apabila bekerja dengan templat Go, anda mungkin menghadapi senario di mana anda ingin memaparkan kandungan lalai jika objek adalah sifar, tetapi tunjukkan kandungan yang berbeza jika sifat tertentu ditetapkan. Walaupun mungkin untuk menggunakan struct tanpa nama, ini boleh memperkenalkan boilerplate yang tidak diperlukan.

Penyelesaian Serbaguna

Untuk menyelesaikan isu ini dengan elegan, pertimbangkan pendekatan berikut:

Templat Kod

{{if not .}}
   // default content
{{else if eq .MetaValue "some-x"}}
   // some-x case
{{else}}
   // other case
{{end}}

Penjelasan

Kod templat ini menilai ungkapan berikut mengikut susunan:

  1. {{ jika tidak .}}: Menyemak sama ada objek itu kosong atau sebaliknya kosong (termasuk palsu, 0, kosong tatasusunan/kepingan/peta, atau rentetan kosong). Jika ya, kandungan lalai dipaparkan.
  2. {{else if eq .MetaValue "some-x"}}: Semak sama ada objek mempunyai sifat MetaValue yang ditetapkan kepada "some- x". Jika ya, kandungan khusus untuk sifat itu dipaparkan.
  3. {{else}}: Jika kedua-dua syarat sebelum ini tidak dipenuhi, sebarang kandungan yang tinggal boleh dipaparkan.

Dengan menggunakan operator not dan bukannya eq . nil, pendekatan ini mengendalikan semua senario yang mungkin, termasuk situasi di mana objek adalah sifar, kosong atau mempunyai nilai selain daripada sifar. Ini menghapuskan keperluan untuk semakan nil yang jelas atau pengenalan struct tanpa nama yang tidak perlu, memastikan templat anda bersih dan ringkas.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memaparkan Kandungan Berbeza Berdasarkan Objek Tiada dan Nilai Harta dalam Templat Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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