简介
最近在学Go语言,在使用map的时候遇到一个小坑,记录一下。
代码介绍
package main
import "fmt"
func main(){
mapA := make([string]interface{})
mapB := make([string]interface{})
mapA["name"] = "大叶"
mapA["age"] = 25
mapB["mapA"] = mapA
for k, v := range mapB {
(k == ) {
for _, v1 := range v{
fmt.Println(v1)
}
}
}
//cannot range over v (type interface {}) 不能对一个空接口进行range
//所以再来看看下 上面发生了什么
//mapA["name"] = "xiaowen" //字符串被强转成interface{}
//mapA["ege"] = 25 //int被强转成interface{}
//mapB["mapA"] = mapA //mapA被转成interface{}了 取出可以强转成 map[string]interface{}
for k, v := range mapB {
if (k == "mapA") {
for _, v1 := range v.(map[string]interface{}){
fmt.Println(v1)
}
}
}
//这里把v再转成mapA的类型即可
//强类型语言要时刻记着类型的转换奥!
}