5
当我想以类似的方式使用映射键但是映射中的值不同时,我遇到过几次这个问题。我想我可以编写一个函数,它将我想要的键类型作为值类型,但它不起作用。Go Lang通用映射值
func main() {
mapOne := map[string]int
mapTwo := map[string]double
mapThree := map[string]SomeStruct
useKeys(mapOne)
}
func useKeys(m map[string]interface{}) {
//something with keys here
}
不知道是否有一个优雅的方式来做到这一点,我只觉得腰部全改写简单的事情,对于不同的值。
如果你知道前面有什么价值类型您关注的是,你可以写一个'func keys(m interface {})'(或者通过一个通道或者调用一个函数来递增键的函数)并且在[type switch](http://golang.org/ref/spec#Type_switches)它。但是我倾向于重复使用所有按键的循环,不仅适用于一般的“编写Go-Go”原因,而且还适用于更多的编译时类型检查。 – twotwotwo 2014-09-10 19:19:46