婷婷同学_
出于性能原因,我个人会使用一维切片,我将其添加为替代方案:type Tile struct { x, y, z int}type Tiles struct { t []*Tile w, h, d int}func New(w, h, d int) *Tiles { return &Tiles{ t: make([]*Tile, w*h*d), w: w, h: h, d: d, }}// indexing based on http://stackoverflow.com/a/20266350/145587func (t *Tiles) At(x, y, z int) *Tile { idx := t.h*t.w*z + t.w*y return t.t[idx+x]}func (t *Tiles) Set(x, y, z int, val *Tile) { idx := t.h*t.w*z + t.w*y t.t[idx+x] = val}func fillTiles(w int, h int, d int) *Tiles { tiles := New(w, h, d) for x := 0; x < w; x++ { for y := 0; y < h; y++ { for z := 0; z < d; z++ { tiles.Set(x, y, z, &Tile{x, y, z}) } } } return tiles}