func (m *Map) Clone() Value {
	m.mu.RLock()
	defer m.mu.RUnlock()
	newMap := &Map{
		MapName:         m.MapName,
		defaultKeyValue: m.defaultKeyValue.Clone().(NumValue),
		m:               make(map[string]NumValue),
	}
	newMap.keys = make([]string, len(m.keys))
	for i, k := range m.keys {
		newMap.m[k] = m.m[k].Clone().(NumValue)
		newMap.keys[i] = m.keys[i]
	}
	return newMap
}
// Clone creates a clone of the Map. Clone makes sure that underlying data
// storage is properly cloned.
Clone creates a clone of the Map. Clone makes sure that underlying data
storage is properly cloned.
// Clone creates a clone of the Map . Clone makes sure that underlying data // storage is properly cloned .
func (m *Map) Clone() Value {
	m.mu.RLock()
	defer m.mu.RUnlock()
	newMap := &Map{
		MapName:         m.MapName,
		defaultKeyValue: m.defaultKeyValue.Clone().(NumValue),
		m:               make(map[string]NumValue),
	}
	newMap.keys = make([]string, len(m.keys))
	for i, k := range m.keys {
		newMap.m[k] = m.m[k].Clone().(NumValue)
		newMap.keys[i] = m.keys[i]
	}
	return newMap
}
func ( m * Map ) Clone ( ) Value { m . mu . RLock ( ) defer m . mu . RUnlock ( ) newMap := & Map { MapName : m . MapName , defaultKeyValue : m . defaultKeyValue . Clone ( ) . ( NumValue ) , m : make ( map [ string ] NumValue ) , } newMap . keys = make ( [ ] string , len ( m . keys ) ) for i , k := range m . keys { newMap . m [ k ] = m . m [ k ] . Clone ( ) . ( NumValue ) newMap . keys [ i ] = m . keys [ i ] } return newMap }
Clone creates a clone of the Map.
Clone creates a clone of the Map .