Rumah > Artikel > pembangunan bahagian belakang > Bagaimana untuk Mengendalikan Rendering Bersyarat dalam Templat HTML Go dengan Else If?
Mengendalikan Rendering Bersyarat dalam Templat HTML Go
Apabila memaparkan templat HTML dalam Go, selalunya perlu untuk memaparkan kandungan secara berbeza berdasarkan syarat tertentu. Satu pendekatan biasa ialah menggunakan binaan bersarang if/elseif/else. Walau bagaimanapun, untuk kes dengan bilangan syarat yang banyak, ini boleh menyebabkan kod bersepah.
Pertimbangkan struct Go berikut:
const ( paragraph_hypothesis = 1<<iota paragraph_attachment = 1<<iota paragraph_menu = 1<<iota ) type Paragraph struct { Type int // paragraph_hypothesis or paragraph_attachment or paragraph_menu }
Anda ingin memaparkan perenggan mengikut cara yang bergantung pada jenis mereka. Walaupun ada kemungkinan untuk menggunakan pernyataan nested if seperti ini:
{{range .Paragraphs}} {{if .IsAttachment}} -- attachment presentation code -- {{else}}{{if .IsMenu}} -- menu -- {{else}} -- default code -- {{end}}{{end}} {{end}}
pendekatan ini menjadi sukar digunakan dengan lebih banyak jenis, mengakibatkan kedua-dua kod Go yang bersepah (dengan fungsi seperti IsSomething) dan kod templat (dengan {{end} bersarang} } pernyataan).
Nasib baik, terdapat penyelesaian yang lebih bersih dalam templat Go: yang lain jika dibina. Dengan menggunakan ini, anda boleh memudahkan templat di atas seperti berikut:
{{range .Paragraphs}} {{if .IsAttachment}} -- attachment presentation code -- {{else if .IsMenu}} -- menu -- {{else}} -- default code -- {{end}} {{end}}
Dengan menggunakan else if, anda boleh menghapuskan keperluan untuk berbilang pernyataan if bersarang, menjadikan kod templat anda lebih ringkas dan mudah diikuti.
Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Rendering Bersyarat dalam Templat HTML Go dengan Else If?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!