package main type Foo struct { a []*Bar b []int32 c bool d []*Bar } type Bar struct { name string } func NewFoo(a []*Bar, b []int32) *Foo { return &Foo{a: a, b: b} } func (f *Foo) Complete() { f.d = append(f.d, f.a...) } func main() { b := &Bar{name: "hello"} f := NewFoo([]*Bar{b}, nil) f.Complete() println(len(f.d)) }