首頁 >後端開發 >Golang >如何確定 Go Struct 欄位是否已明確設定?

如何確定 Go Struct 欄位是否已明確設定?

Barbara Streisand
Barbara Streisand原創
2024-12-07 21:24:15572瀏覽

How Can I Determine if a Go Struct Field Has Been Explicitly Set?

Go 結構體的預設值

在 Go 中,結構體(struct)的欄位有預設值。例如,整數 (int) 預設為 0。雖然這在許多情況下都很有用,但當您遇到 0 是有效值的情況時,它可能會帶來挑戰。這使得很難知道結構體中的字段是否已被明確設定。

區分預設值和設定值

不幸的是,Go 不提供直接確定欄位是否已設定或初始化為其預設值的方法。但是,您可以採用兩種方法:

使用指標

您可以對可能未設定的欄位使用指標。指標具有 nil 零值,您可以使用它來檢查欄位是否已設定:

在這種情況下,TestIntOne 和 TestIntTwo 是指向整數的指標。如果 TestIntOne 為 nil,表示尚未設定,如果不是 nil,則已設定為非零值。

使用方法

或者,您可以建立一個方法來設定欄位並追蹤它是否已被設定或not:

透過這個方法可以控制TestIntOne的設置,isSetOne屬性會指示是否已經設定。

結論

雖然 Go 結構體的欄位有預設值,但沒有直接的方法來決定欄位是否已手動設定或初始化為其預設值。但是,透過使用指標或方法,您可以解決此限制並維護結構體欄位的狀態。

以上是如何確定 Go Struct 欄位是否已明確設定?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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