为什么SetAge()方法没有正确设置年龄?

时间:2016-12-03 22:11:12

标签: go

我正在试验GoLang和接口以及结构继承。

我已经创建了一组结构,其中包含我可以在核心结构中保留常用方法和值的想法,然后只需继承它并在适当时添加额外的值:

type NamedThing interface {
    GetName() string
    GetAge()  int
    SetAge(age int)
}

type BaseThing struct {
   name string
   age  int
}

func (t BaseThing) GetName() string {
   return t.name
}

func (t BaseThing) GetAge() int {
   return t.age
}

func (t BaseThing) SetAge(age int) {
   t.age = age
}

type Person struct {
   BaseThing
}

func main() {
    p := Person{}
    p.BaseThing.name = "fred"
    p.BaseThing.age = 21
    fmt.Println(p)
    p.SetAge(35)
    fmt.Println(p)
}

你也可以在go操场上找到它:

https://play.golang.org/p/OxzuaQkafj

然而,当我运行主要方法时,年龄仍为" 21"并且没有通过SetAge()方法更新。

我试图理解为什么这样做以及我需要做些什么来使SetAge正常工作。

0 个答案:

没有答案