如何编写DRY golang地图操作函数



据我所知,golang没有类型变量。那么,我该如何干燥这两个函数呢?

func merge_modes32(nm map[uint32]pb.Mode, om map[uint32]pb.Mode) {
for k, v := range nm {
om[k] = v
}
}
func merge_modes64(nm map[uint64]pb.Mode, om map[uint64]pb.Mode) {
for k, v := range nm {
om[k] = v
}
}

您不能以接近性能的方式"干燥"它。您可以使用反射,但生成的代码会非常慢。

该怎么办?在泛型出现之前(可能在Go 2中(,您可以继续为所有需要的类型创建这样的函数,或者只在需要的地方使用for循环。它只有3行代码,包括循环和括号。。。

最新更新