go deep copy map

func deepCopyJSON(src map[string]interface{}, dest map[string]interface{}) error {
    if src == nil {
        return errors.New("src is nil. You cannot read from a nil map")
    }
    if dest == nil {
        return errors.New("dest is nil. You cannot insert to a nil map")
    }
    jsonStr, err := json.Marshal(src)
    if err != nil {
        return err
    }
    err = json.Unmarshal(jsonStr, &dest)
    if err != nil {
        return err
    }
    return nil
}

  

------------------------

To copy a map content need to execute a for loop and fetch the index value 1 by 1 with element and assign it to another map. Below is a short example.

packagemain

import(

"fmt"

)

funcmain() {

map1 :=map[string]int{

"x":1,

"y":2,

}

map2 :=map[string]int{}

/* Copy Content from Map1 to Map2*/

forindex,element :=rangemap1{

map2[index] = element

}

forindex,element :=rangemap2{

fmt.Println(index,"=>",element)

}

}

C:\golang\codes>go run example.go

x => 1

y => 2

C:\golang\codes>