在golang中,是否可以创建一个具有以下约束的结构的函数:
nil
编辑: 我尝试使用指针,但是可以将其设置为null。我找不到任何有关如何使用引用的好的文章,而且似乎无法通过引用传递。
答案 0 :(得分:2)
您可以创建一个小的结构包装器,该包装器包含指向大结构体的私有指针,并定义Get
方法以允许获取此大结构体。在Get
内部,您检查指针是否为nil,然后恐慌了。
类似的东西:
type StructHolder struct {
target *BigStruct
}
func (s StructHolder) Get() *BigStruct {
if s.target == nil {
panic("target is nil")
}
return s.target
}
您为什么要这样做?我认为最好传递一个指针并检查其值。