在 Go 中使用結構體表示資料時,考慮欄位名稱的大小寫非常重要。按照約定,僅導出以大寫字母開頭的字段,使它們在當前包外部可見。
在提供的程式碼中,Person 結構有一個名為 Age 的欄位大寫字母,而名稱小寫。因此,當結構體傳遞到 CouchDB 函式庫的 PostDocument 方法時,僅匯出 Age 欄位。
使用 json 包編組 JSON 時也適用相同的原則。只有導出的欄位(以大寫字母開頭)才會包含在輸出中。 Go 語言規格中描述了此行為:http://golang.org/ref/spec#Exported_identifiers。
要在資料庫或 JSON 輸出中包含小寫字段,在結構定義中使用「標籤」。例如:
type Sample struct { Name string `json:"name"` Age int `json:"age"` }
標籤在匯出的欄位名稱(姓名和年齡)與其小寫等效項(姓名和年齡)之間提供明確對應。
透過使用標籤或遵循匯出欄位使用大寫欄位名稱的約定,可以確保在與第三方程式庫互動或執行 JSON 操作時正確處理結構體中的所有欄位。
以上是Go中如何控制哪些結構體欄位?的詳細內容。更多資訊請關注PHP中文網其他相關文章!