我正在玩结构嵌入,并且在保持对嵌入结构的相同引用方面遇到问题。试试Go Playground 会发现有两个不同的指针地址*strings.Reader。package mainimport ( "fmt" "strings")type Base struct { reader *strings.Reader}func NewBase() *Base { r := strings.NewReader("hello") fmt.Printf("document: %#+v\n\n", &r) return &Base{r}}func (b *Base) Check() { fmt.Printf("document: %#+v\n\n", &b.reader)}type Concrete struct { *Base}func NewConcrete() *Concrete { return &Concrete{NewBase()}}func main() { c := NewConcrete() c.Check()}为什么这些地址不一样?我该如何解决?
1 回答
- 1 回答
- 0 关注
- 170 浏览
添加回答
举报
0/150
提交
取消