【问题标题】:What is the advantage of using a pointer to a string instead of a string in Go [duplicate]在Go中使用指向字符串而不是字符串的指针有什么好处[重复]
【发布时间】:2017-05-17 01:22:56
【问题描述】:

查看我遇到的一些 go 代码:

Person struct {
    Name *string `json:"name"`
}

然后是我看到的一些地方:

Animal struct {
    Name string `json:"name"`
} 

这里的指针有什么好处?

【问题讨论】:

    标签: go data-structures structure


    【解决方案1】:

    * 声明了一个pointer type。解码 JSON 时有时会使用指向字符串的指针来区分以下 JSON:

    JSON        value of the Name field
    { }         nil
    {name: ""}  pointer to ""
    

    没有指针,就无法在解码结果中区分缺失值和空白值。

    如果应用程序不需要进行这种区分,则使用问题中显示的第二种形式。更方便。

    【讨论】:

      【解决方案2】:

      * 表示指针。
      在您的情况下,Name 是指向字符串的指针类型的字段。

      http://www.golang-book.com/books/intro/8

      【讨论】:

        【解决方案3】:

        * 是一个指针。

        指针类型表示指向给定变量的所有指针的集合 type,称为指针的基类型。一个值 未初始化的指针为零。

        这来自Go Spec。我建议您通读一遍。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-09-29
          • 1970-01-01
          • 2020-10-30
          • 1970-01-01
          • 2013-04-26
          相关资源
          最近更新 更多