我試着寫了一個簡單的ORM的MySQL,我有一個問題,如果定義的結構缺少一些領域:如何在Go中安全地檢測struct的清零值?
type User struct {
ID int64
Username string
Password string
Email string
Comment string
}
var u = User{Username: "user_0001", Password: "password"}
用戶的某些字段沒有給出值,那麼它的價值將是一個歸零值,如字符串""
,bool false
,整數0
等。
所以我用reflect
獲得字段名稱和值,生成SQL插入一行。
INSERT INTO User (Id, Username, Password, Email, Comment) Values (0, "user_0001", "password", , ,)
你可以看到有有字符串的一些歸零值,如果我發現空字符串""
和跳過它們,我可能會跳過正常價值。