首頁 > 後端開發 > Golang > 主體

如何區分 Go 結構體中的未設定值和空值?

Susan Sarandon
發布: 2024-10-24 12:58:02
原創
706 人瀏覽過

How to Distinguish Between Unset and Empty Values in Go Structs?

區分Go 結構體中的Unset 和Empty 值

在Go 中,定義結構體時,你可能會遇到需要區分以下值的情況:故意未設定且值只是空的。這對於資料庫持久性和確保準確的資料處理至關重要。

考慮以下範例:

假設您想要確定 Category 欄位是否從未設定或有意設定為空字串。使用欄位指標(例如 *string)並不能解決這個問題,因為指標的零值為 nil,它無法區分未設定的值和空值。

要解決這個問題,您可以使用自訂類型,例如來自database/sql 套件的sql.NullString。它追蹤NULL 狀態並允許您區分以下情況:

  • unset: NullString{String: "", Valid: false}
  • 空字符字串: NullString{字串: "", 有效: true}
  • 非空字串: NullString{字串: "value", 有效: true}

在資料庫掃描和參數綁定期間,sql.NullString 類型會自動處理NULL 狀態。

例如掃描NullString 欄位:

將NullString 值綁定到資料庫參數:

這種方法可以讓您區分未設定的值和空值,並確保準確的資料庫持久性。

以上是如何區分 Go 結構體中的未設定值和空值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!