Golang将地图分配给接口

Golang将地图分配给接口,go,Go,我想给一个接口分配一个映射,其中底层值的类型为map[string]interface type Data struct{ data interface{} } result := make(map[string]interface{}) data := Data{ data:result } details := make(map[string]interface{}) details["CreatedFor"] = "dfasfasdf" details["OwnedBy"]

我想给一个接口分配一个映射,其中底层值的类型为
map[string]interface

type Data struct{
  data interface{}
}

result := make(map[string]interface{})
data := Data{
   data:result
}

details := make(map[string]interface{})
details["CreatedFor"] = "dfasfasdf"
details["OwnedBy"] = "fasfsad"

如何在
data
struct中的
data
接口中插入详细信息值?

要将接口视为映射,需要先键入check作为映射

我对您的示例代码进行了一些修改,使其更加清晰,并添加了解释其功能的内联注释:

package main

import "fmt"

func main() {
    // Data struct containing an interface field.
    type Data struct {
        internal interface{}
    }

    // Assign a map to the field.
    type myMap map[string]interface{}
    data := Data{
        internal: make(myMap),
    }

    // Now, we want to access the field again, but as a map:
    // check that it matches the type we want.
    internalMap, ok := data.internal.(myMap)
    if !ok {
        panic("data.internal is not a map")
    }

    // Now what we have the correct type, we can treat it as a map.
    internalMap["CreatedFor"] = "dfasfasdf"
    internalMap["OwnedBy"] = "fasfsad"

    // Print the overall struct.
    fmt.Println(data)
}
这将产生:

{map[CreatedFor:dfasfasdf OwnedBy:fasfsad]}

这正是我要问的唯一一件事,就是我想提取接口的底层值,我使用类型断言StackOverflow所做的操作禁止我问如何提升它的问题ban@Himanshu完成,并根据您更新的问题调整了我的答案。