首頁 >後端開發 >Golang >Go中如何控制哪些結構體欄位?

Go中如何控制哪些結構體欄位?

DDD
DDD原創
2024-12-01 00:34:11235瀏覽

How Do I Control Which Struct Fields Are Exported in Go?

在 Go 中匯出結構體欄位

在 Go 中使用結構體表示資料時,考慮欄位名稱的大小寫非常重要。按照約定,僅導出以大寫字母開頭的字段,使它們在當前包外部可見。

CouchDB Struct Issue

在提供的程式碼中,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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn