]> 127.0.0.1 Git - part/.git/commitdiff
fix
authorqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 12 Mar 2023 14:13:46 +0000 (22:13 +0800)
committerqydysky <32743305+qydysky@users.noreply.github.com>
Sun, 12 Mar 2023 14:13:46 +0000 (22:13 +0800)
sync/Map.go
sync/Map_test.go

index fb62b0c567ae33beff3e620047df5f96d596061f..7553fcfb0b2dd0fb46c5e8a0dc9702adae630a85 100644 (file)
@@ -45,3 +45,11 @@ func (t *Map) Copy() (m Map) {
        })
        return
 }
+
+func Copy[T comparable, S any](s map[T]S) map[T]S {
+       t := make(map[T]S)
+       for k, v := range s {
+               t[k] = v
+       }
+       return t
+}
index 1457b205232afb46763bbb863358b3c093300f00..a8d468fd3195f0891adb21f0ff7349217ddd03c8 100644 (file)
@@ -177,6 +177,16 @@ func Test_1(t *testing.T) {
        }
 }
 
+func Test_2(t *testing.T) {
+       var c = make(map[string]int)
+       c["1"] = 1
+       cc := Copy(c)
+       c["1"] = 2
+       if cc["1"] != 1 {
+               t.Fatal()
+       }
+}
+
 func Benchmark_customMap_Range(b *testing.B) {
        var c Map
        var w = &sync.WaitGroup{}