我玩弄mysql和结果反馈到结构的数组。

type User struct {
    FirstName string
    LastName  string
}

围棋不允许零值的字符串,但如果我做字符串指针

type User struct {
    FirstName *string
    LastName  *string
}

那么它是允许的,我可以从数据库解析NULL值到零字符串。

是否有使用指针,让零的特定缺点?任何原因,我应该比笨重NullString方法的工作就越多?

type NullString struct {
    String string
    Valid bool
}
分析解答

缺点是简单的,但他们大多也是优点:

  1. 现在有可以是零指针。您可能需要以不同的方式处理这种情况(因为指针可能是零),这意味着你必须写更多的代码。这也是它的优势:您可能需要以不同的方式处理这种情况(您想解决的问题,这是),在这种情况下,你需要一种方法来从"contents are ___"分别标志"does not exist"。将指针设置为nil的能力,为您提供了这样的区分。

  2. 因为有一个指针参与,您可以共享基础数据。这也是它自己的优势。

  3. 实际使用的数据需要一个间接的额外水平。 (这是一个纯粹的缺点,这里还有没有上涨空间。)