Rumah >pembangunan bahagian belakang >Golang >Bagaimanakah Saya Boleh Mentakrifkan Teg Nama Berbilang untuk Medan dalam Go Struct?

Bagaimanakah Saya Boleh Mentakrifkan Teg Nama Berbilang untuk Medan dalam Go Struct?

Linda Hamilton
Linda Hamiltonasal
2024-12-04 14:47:11237semak imbas

How Can I Define Multiple Name Tags for Fields in a Go Struct?

Teg Nama Berbilang dalam Struktur Go

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.

Isu: Mentakrifkan Teg Nama Berbilang dalam Struktur

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.

Penyelesaian: Menggunakan Ruang sebagai Pemisah Teg

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.

Rujukan Dokumentasi

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!

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