第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 Postgres 掃描到帶有指針的結(jié)構(gòu)體

從 Postgres 掃描到帶有指針的結(jié)構(gòu)體

Go
富國滬深 2023-08-07 18:49:33
從數(shù)據(jù)庫掃描時(shí),使用如下帶有指針的結(jié)構(gòu)而不是不帶指針的結(jié)構(gòu)有什么好處?  type User struct {      ID           *UserID    `json:"id,omitempty"`      Email        *string    `json:"email"`      Username     *string    `json:"username"`      PasswordHash *[]byte    `json:"password_hash"`      CreatedAt    *time.Time `json:"created_at"`    }
查看完整描述

3 回答

?
泛舟湖上清波郎朗

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超3個(gè)贊

如果您嘗試將具有空 DB 值的行掃描為非指針類型,則行掃描操作將導(dǎo)致錯(cuò)誤。

最佳實(shí)踐是檢查數(shù)據(jù)庫表的架構(gòu)。如果列不能有空值,請使用非指針。如果可能為空(無論您認(rèn)為可能性有多?。?,請使用指針。

如果您發(fā)現(xiàn)指針使用起來很乏味(即樣板 nil 檢查),請使用sql.NullString作為列字段。如果在行掃描期間遇到 NULL,則NullString值將默認(rèn)為空字符串。

Go 1.13 還添加了NullTime?etc. 來處理其他 Nullable 列類型。


查看完整回答
反對 回復(fù) 2023-08-07
?
隔江千里

TA貢獻(xiàn)1906條經(jīng)驗(yàn) 獲得超10個(gè)贊

如果需要區(qū)分零值和空值,則在掃描解組時(shí)使用帶有指針的結(jié)構(gòu)是必要的。當(dāng)相應(yīng)值為 null 時(shí), string/int/struct 將失?。ɑ蛟诮饨M時(shí)初始化為零值),而指向 string/int/struct 的指針將設(shè)置為 nil。



查看完整回答
反對 回復(fù) 2023-08-07
?
一只斗牛犬

TA貢獻(xiàn)1784條經(jīng)驗(yàn) 獲得超2個(gè)贊

我建議使用Github 上 README 文件末尾pgx提到的內(nèi)容:lib/pg

對于需要新功能或可靠解決報(bào)告的錯(cuò)誤的用戶,我們建議使用正在積極開發(fā)的 pgx。

然后,您可以使用自定義 pgtype而不是 Go 內(nèi)置的。


查看完整回答
反對 回復(fù) 2023-08-07
  • 3 回答
  • 0 關(guān)注
  • 186 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號