Csináltam egy ilyen csomagot...
package foo
type Foo struct {
num int
aMap map[int](int)
}
func MakeFoo() BookState {
return Foo{
num: -1,
aMap: make(map[int](int)),
}
}
Egy ilyen fájl sorait dolgozom fel
nrows :=100
arrayFoo = make([]Foo, nrows)
Foo = foo.MakeFoo()
count := 0
for int i=0; i < nrows; i++ {
row = myWrappedReader.ReadLine()
foo.num = i
foo.aMap[key] += row.otherNum
arrayFoo[i] = foo
}
De aztán amikor megnézem a arrayFoo
végén, van valami, ami így néz ki [{num:1, aMap:{/*final state*/}, {num:2, aMap:{/*final state*/}, ...]
Tehát az egész szám frissül, de a aMap
-ra mutató mutató helyett a aMap
másolatára van szükségem.
Update:
Íme egy játszótér.
Update2:
Íme egy működő verzió. Az én osztályom ennél kicsit bonyolultabb, ezért azt hiszem, írok egy segítő függvényt a package foo
-be, ami klónozná.