我有一个简单的代码:
type Namer interface {
PrintName()
}
type P struct {
Name string
}
func (p *P) PrintName() {
fmt.Printf("%s\n", p.Name)
}
func main() {
p := P{Name: "Name"}
var namers []Namer
namers = append(namers, &p)
fmt.Println(reflect.TypeOf(namers[0]))
on := &namers[0]
fmt.Println(reflect.TypeOf(on))
(*on).PrintName()
(**on).Name = "EEEE"
(*on).PrintName()
}
和一堆问题:)
为什么我不能写:append(namers, p)?&p 是指向 P 的指针,数组名称不是指针数组
为什么 TypeOf(namers[0]) 是 *P 而 TypeOf(on) 是 *Namer?没有意义,TypeOf(&(*P))应该是**P
为什么最后一行打印:“名称”而不是“EEE”?
感谢帮助!
慕慕森
慕桂英4014372
相关分类