2
私はGoLangとインターフェイスと構造継承を試しています。SetAge()メソッドで年齢が正しく設定されないのはなぜですか?
私はその後、ちょうどこれを継承し、必要に応じて余分な値を追加するコア構造に共通のメソッドと値を保つことができるという考えを持つ構造のセットを作成しました:
あなたがすることもでき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)
}
を外出先での遊び場にここで見つける:
https://play.golang.org/p/OxzuaQkafj
私はmainメソッドを実行したときしかし、年齢が「21」のままであるとSetAge()メソッドによって更新されていません。
私はSetAgeを正しく動作させるためにこれがなぜ必要なのかを理解しようとしています。
私はそれを逃したと信じられない - ありがとう! 私は明確にコーディングを止めて眠らなければなりません。 – Stephen