我想知道如何初始化一个指向结构的nil指针,当函数接收此参数为.initializeinterface{}
假设我将始终发送一个指针,并且函数的参数类型严格,我如何使此代码工作?interface{}
type Foo struct {
}
func main() {
var foo *Foo
fmt.Println("foo is nil: ", foo)
initialize(foo)
fmt.Println("foo should not be nil: ", foo) // foo should be Foo{}, but it is nil
}
func initialize(fooPointer interface{}) {
reflect.ValueOf(&fooPointer).Elem().Set(reflect.ValueOf(&Foo{}))
fmt.Println("fooPointer is not nil: ", fooPointer)
}
https://play.golang.org/p/Va0bqXJGhWZ
拉丁的传说
相关分类