少し混乱しています。 playgroundをご覧ください。親をstruct embedding parentで呼び出す関数が機能しません。
私は、その親を埋め込んだ子を持つ親を取るメソッドを呼び出すことができます。私は「child.Parent」でこれを呼び出した場合
package main
import (
"fmt"
)
type Parent struct {
A string
}
type Child struct {
Parent
}
func SomeFunction(parent Parent) {
fmt.Println("%v", parent.A)
}
func main() {
child := Child{Parent{A:"test"}}
SomeFunction(child) //prog.go:21: cannot use child (type Child) as type Parent in argument to SomeFunction
}
は、それが動作しますが、その場合には、私は空のインターフェースとして値を利用して関数内の任意のコードを使用することはできません。これを知って、非常に興味深く役に立つページを見つけました。 Golang concepts from an OOP point of view。私がここで紛失していることに関するガイダンスは歓迎です。おそらく、これはゴーランをここで完全に「取得」しているわけではない。
人インタフェースhttps://play.golang.org/p/_JfXyyflP8を使用して迅速な遊び場を書いた...ここでは、別の有用なブログ記事がありますhttps://medium.com/@gianbiondi/interfaces-in-go- 59c3dc9c2d98#.7l72q6qwg – poopoothegorilla
ありがとう!私は "親"構造体のメンバーにアクセスすることができますインターフェイスを使用して終了しました。あなたは、私は物事私はOOでそれらをやってDRY滞在しながら移動して、それらを達成する方法を考え出すのに苦労に慣れている道をやろうとしている右の問題であることです。私はコードをコピーしているので、私は正しく何かをしていないように感じる。 – Toby