Вы должны клонировать объект карты, чтобы сделать это. Тем не менее, я предполагаю, что вы не будете на самом деле; -).
package main
import (
"bytes"
"encoding/gob"
"fmt"
"reflect"
)
func Clone(a interface{}) interface{} {
buff := new(bytes.Buffer)
v := reflect.New(reflect.TypeOf(a))
gob.NewEncoder(buff).Encode(a)
gob.NewDecoder(buff).Decode(v.Interface())
return v.Elem().Interface()
}
func main() {
AMap := make(map[int]int)
BMap := make(map[int]map[int]int)
K := []int{9,8,7,6,5,4,3,2,1,0}
for i := 0; i < 10; i++ {
k := K[i]
AMap[k]++
BMap[i] = Clone(AMap).(map[int]int)
}
fmt.Println(BMap)
}