【问题标题】:golang: Set type struct to nil [closed]golang:将类型结构设置为 nil [关闭]
【发布时间】:2015-05-08 19:02:13
【问题描述】:
type Ptr struct {
    ID   *big.Int
    IpAddress string
    Port      string
}
var NewVar Ptr

用值初始化 NewVar 后,我想将 NewVar 设置为 nil。我该怎么做?

【问题讨论】:

  • 结构值不能为 nil。我认为你真的需要从docs
  • 我认为您将指向结构的指针与值本身混淆了。 nil 不是结构的允许值。但是,它是指针的常用值。如果NewVar 被声明为var NewVar *Ptr,它可以设置为nil。它也可以设置为&Ptr{}

标签: go


【解决方案1】:

一个struct值的zero value不是nil

variable 或值的每个元素的类型都设置为零值:false 用于布尔值,0 用于整数,0.0 用于浮点数,"" 用于字符串,nil 用于指针、函数、接口、切片、通道和映射

在你的例子中,这个 variable declaration var NewVar Ptr 创建变量,将相应的标识符 Ptr 绑定到它,并给它一个类型和一个初始值。

【讨论】:

  • @EliMiller ID 被声明为指向 big.Int 的 指针,这意味着它的零值将是 nil
猜你喜欢
  • 2016-02-23
  • 1970-01-01
  • 2018-12-25
  • 2016-10-12
  • 1970-01-01
  • 2016-07-19
  • 2016-02-16
  • 1970-01-01
  • 2015-09-18
相关资源
最近更新 更多