go - 地图范围循环中的空接口
问题描述
下面的代码没有按预期工作。
package main
import "fmt"
func main() {
questions := make(map[int]interface{})
questions[1] = map[interface{}]string{
"q1": "This is Question - 1?",
"op1": "This is Option - 1",
"op2": "This is Option - 2",
true: "This is Option - 1",
}
// This give map[interface {}]string
fmt.Printf("%T \n", questions[1])
// This not working
for key, val := range questions[1] {
printf("%v : %v", key, val)
}
}
覆盖地图的 for 循环不起作用。
Go 编译器给出错误“Cannot range over questions[1] (type interface {})”
解决方案
make go 明白questions[1]
有类型是map
for key, val := range questions[1].(map[interface{}]string) {
fmt.Printf("%v : %v\n", key, val)
}
推荐阅读
- xamarin.ios - Xamarin.Firebase.iOS.CloudMessaging 在 Messaging.SharedInstance.Delegate 上失败
- python - 尝试安装 more_itertools 时出现“默认为用户安装,因为普通站点包不可写”错误。建议?
- navbar - 我的引导页面不断将我引导到页面底部
- javascript - 折线图中带过滤器的 D3
- java - 春天的特点和意义?
- html - 从页脚底部删除空格?
- abap - 为什么会出现运行时错误 DBSQL_DBSL_LENGTH_ERROR?
- macos - React Nativa 他命令 pod install 在 macOS 中导致错误
- python - 从 cmd 运行时没有名为“制表”的模块
- amazon-redshift - 从 Glue 作业的 Glue 数据目录访问 Aurora Postgres 物化视图