凡是觉得golang的map好的,大概都是喜欢在代码里反复一遍遍写

var (
  key Key
  value Value
  exists bool
)
for k, v := range m {
  key = k
  value = v
  exists = true
  break
}

// 不要说golang有泛型了,有些project因为依赖一时半会升不上去还得停在1.16吃屎
// 而且Golang泛型基本不存在类型推导,类型参数都要自己一个个糊上去,代码糊成一坨耙耙
func CloneMapIntInt(map[int]int) map[int]int { ... }
func CloneMapIntString(map[int]string) map[int]string { ... }
...
func CloneMapStringString(map[string]string) map[string]string { ... }
...
import "encoding/json"
func DeepCloneJson(src interface{}, dst interface{}) error { ... }
...
import "reflect"
func DeepCloneReflect(src interface{}) (interface{}, error) { ... }

m := map[A]B {
  k1: v1,
  k2: v2,
}
if cond1 {
  m[x1] = y2
}
if cond2 {
  m[x2] = y2
}

而不是

m.entries().first()

func Clone[K Clone, V Clone](m HashMap[K, V]) HashMap[K, V] { ... }

m := EnchancedHashMap[A, B](map[A]B {
    k1: v1,
    k2: v2,
  }).
  PutIf(cond, x1, y1).
  PutIf(cond, x2, y2)


甚至还有人代码里经常有嵌套的map,你们的Server接口莫不是这样定义的?

func ServeHttp(req: map[string]interface{}) map[string]interface


而且支持泛型,标准库提供HashMap[K, V]并提供一个map糖用来初始化HashMap完全不矛盾。

当然这样就不S & B了。