* string和sql.NullString之间的区别

我最近一直在Golang中苦苦研究SQL NULL值。 尝试使用 Decode()</ code>和 sql.NullString </ code>取消JSON对象的编组失败后,我在StackOverflow上得到了以下答案:</ p>

< a href =“ https://stackoverflow.com/questions/31048557/assigning-null-to-json-fields-instead-of-empty-strings-in-golang#answer-31048860”>将null分配给JSON字段,而不是 Golang中的空字符串 </ p>

使用字符串指针的解决方案似乎可以与Decode()和nil值完美配合。 那么 sql.NullString </ code>和 * string </ code>之间有什么区别?
难道只是nil检查?</ p>
</ div>

展开原文

原文

I've been strugguling with SQL NULL values in Golang recently. After trying to unsuccessfully unmarshal JSON objects using Decode() and sql.NullString, I came to this answer on StackOverflow :

Assigning null to JSON fields instead of empty strings in Golang

The solution using a string pointer seems to work perfectly with Decode() and nil values. So what is the difference between sql.NullString and *string ? Is it just about nil checking ?

doucai5315
doucai5315 来自sql的NULL与Gonil不同。看看NullString
大约 4 年之前 回复

1个回答



SQL的空值与Golang不同。</ p>

如果您查看 sql.NullString </ code>,那么您将得到以下内容:</ p>

  type NullString struct {
字符串string
有效布尔值//如果String不是,则为true NULL
}
</ code> </ pre>

如您所见, sql.NullString </ code>是一种表示来自SQL的空字符串(对应于
另一方面,nil * string </ code>是指向nil的字符串的指针,因此两者是不同的。</ p>
</ div>

展开原文

原文

SQL has different null values than Golang.

If you look at the definition of sql.NullString then this is what you get:

type NullString struct {
    String string
    Valid  bool // Valid is true if String is not NULL
}

As you can see, sql.NullString is a way to represent null string coming from SQL (which correspond to "NULL"). On the other hand, a nil *string is a pointer to a string which is nil, so the two are different.

dtnpzghys01643322
dtnpzghys01643322 那很聪明也很干净
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐