Apabila bekerja dengan struct dalam Go, adalah berguna untuk mentakrifkan berbilang tanda nama untuk mewakili medan yang sama dalam konteks yang berbeza. Ini amat berguna apabila berurusan dengan perpustakaan atau API pihak ketiga yang mengharapkan data dalam format tertentu.
Pertimbangkan contoh berikut:
type Page struct { PageId string `bson:"pageId"` Meta map[string]interface{} `bson:"meta"` }
Struktur ini direka bentuk untuk mewakili dokumen pangkalan data Mongo, dengan medan PageId ditandakan untuk MongoDB (bson) dan medan Meta yang ditandakan untuk MongoDB juga. Walau bagaimanapun, apabila mengekodkan struct ini kepada JSON, medan PageId dipaparkan sebagai PageId (dalam huruf besar) bukannya pageId.
Untuk menentukan berbilang tag nama untuk medan, gunakan ruang dan bukannya koma sebagai pemisah antara tag. Berikut ialah versi struct yang dikemas kini:
type Page struct { PageId string `bson:"pageId" json:"pageId"` Meta map[string]interface{} `bson:"meta" json:"meta"` }
Dengan pengubahsuaian ini, medan PageId ditandakan untuk kedua-dua MongoDB (sebagai pageId) dan JSON (sebagai pageId). Ini memastikan bahawa medan akan dinamakan dengan sewajarnya apabila berinteraksi dengan MongoDB atau pengekodan kepada JSON.
Dokumentasi pakej Go reflect menentukan konvensyen untuk rentetan teg:
By convention, tag strings are a concatenation of optionally space-separated key:"value" pairs.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mentakrifkan Teg Nama Berbilang untuk Medan dalam Go Struct?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!