无法使用 String 作为 sql.NullString:需要类型转换
创建 gorm 模型并使用 sql.NullString 时,可能会出现错误出现表明无法使用字符串作为 sql.NullString。这是因为 sql.NullString 是一个对初始化有特定要求的结构。
要解决此问题,应使用正确的语法初始化 Something 字段:
<code class="golang">db.Create(&Day{ Nameday: "Monday", Dateday: "23-10-2019", Something: sql.NullString{String: "a string goes here", Valid: true}, Holyday: false, })</code>
作为替代方案,可以创建自定义可为空字符串类型以允许更简单的语法:
<code class="golang">type MyString string const MyStringNull MyString = "\x00" // Implement the necessary interfaces for GORM func (s MyString) Value() (driver.Value, error) { ... } func (s *MyString) Scan(src interface{}) error { ... }</code>
使用此自定义类型,可以按照最初的预期初始化 Something 字段:
<code class="golang">db.Create(&Day{ Nameday: "Monday", Dateday: "23-10-2019", Something: "a string goes here", Holyday: false, })</code>
以上是如何在 GORM 模型中初始化 sql.NullString?的详细内容。更多信息请关注PHP中文网其他相关文章!