我是Go语言的新手,我正在尝试学习如何将interface {}转换到Map。这是我尝试实现的示例。
游乐场链接:https://play.golang.org/p/3jhKlGKO46Z
谢谢您的帮助。
package main
import (
"fmt"
)
func main() {
Map := make(map[string]interface{})
test(Map)
for k,v := range Map {
fmt.Println("key : %v Value : %v", k, v)
}
}
func test(v interface{}) error{
data := make(map[int]interface{})
for i := 0; i < 10; i++ {
data[i] = i * 5
}
for key,val := range data {
// fmt.Println("key : %v Value : %v", key, val)
v[key] = val
}
return nil
最佳答案
Go支持接口(interface)的类型断言。它提供了界面中存在的具体值。
您可以使用以下代码来实现。
m, ok := v.(map[int]interface{})
if ok {
// use m
_ = m
}
如果断言的值不是给定类型,则
ok
将为false
如果避免第二个返回值,程序将因错误的断言而惊慌。
我强烈建议您阅读https://tour.golang.org
关于go - 如何在GO中将界面{}转换到 map ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/61038607/