* string和sql.NullString之间的区别

时间:2016-10-17 17:16:51

标签: go

我最近在Golang中一直在努力解决SQL NULL值问题。尝试使用Decode()sql.NullString解组JSON对象失败后,我在StackOverflow上找到了这个答案:

Assigning null to JSON fields instead of empty strings in Golang

使用字符串指针的解决方案似乎与Decode()和nil值完美配合。那么sql.NullString*string之间有什么区别? 这只是零检查吗?

1 个答案:

答案 0 :(得分:7)

SQL具有与Golang不同的空值。

如果你看一下sql.NullString的定义,那就是你得到的:

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

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