ich so etwas wie dieses:Passing eingebettet Struktur zu funktionieren
type Foo struct{}
func NewFoo() *Foo { ... }
type Bar struct {
*Foo
}
Wie kann ich eine Instanz von Bar an eine Funktion, die nimmt * Foo?
func DoStuff(f *Foo) {}
func main() {
bar := Bar{NewFoo()}
DoStuff(bar) // <- go doesn't like this, type mismatch
}
Ist es möglich, die eingebettete Struktur zu erhalten und an die Funktion zu übergeben?
Der einzige Weg, wie ich das zum Laufen bringen kann, ist, wenn ich * Foo als Mitglied der Struktur behandelt habe und es als bar.foo
übergeben habe. Aber das ist irgendwie chaotisch, ist das der einzige Weg?
type Foo struct{}
type Bar struct {
*Foo
}
bar := Bar{&Foo{}}
func(f *Foo) {}(bar.Foo)
Siehe Struct Types in der Sprache spec Abschnitt:
Wow, das war schnell! Muss 12 Minuten warten, aber danke! :-) – flooblebit