在go中解码avro返回map[string]接口{},但不能覆盖范围(类型接口{})

在go中解码avro返回map[string]接口{},但不能覆盖范围(类型接口{}),go,avro,Go,Avro,以下是avro解码的输出: native, _, err := codec.NativeFromBinary(b) //map[string]interface {} if err != nil { panic(err) } fmt.Println(reflect.TypeOf(native)) fmt.Println(native) map[string]interface {} map[com.nasdaq.marketdata.sequencer.applications.d

以下是avro解码的输出:

native, _, err := codec.NativeFromBinary(b)  //map[string]interface {}
if err != nil {
    panic(err)
}

fmt.Println(reflect.TypeOf(native))
fmt.Println(native)

map[string]interface {}
map[com.nasdaq.marketdata.sequencer.applications.datafeed.ultrafeed.ultrafeed30.messaging.SeqOneSidedNBBOShort:map[SoupPartition:0 SoupSequence:49377202 appendages:[] channelIndex: condition: mcLocate:13 msgFlags: msgType:c nbboFlags: price:800 protocol:3 sLocate:17220 side:S size:12 srcNanos:674905424 srcSequence:118438648]]
我正试图进入钥匙槽

怎么做


所以我对golang还比较陌生,我不明白。

无法复制。如果是
接口{}
,则可以使用类型转换,如
…范围映射[string]接口{}(本机)
。I dot get?如何进行类型转换?你能回答这个问题吗?谢谢我会放置整个代码,但是avro模式是一个大文件。您能看看前面的注释中的go PLAYONE代码吗?它返回的是
map[string]接口{}
,还是
interface{}
类型为
map[string]接口{}
?如果是后者,则需要一个类型断言:
用于键,值:=range native。(映射[string]接口{}){/*…*/}
for key, value := range native {
    fmt.Println("Key:", key, "Value:", value)
}

 ./main.go:64:20: cannot range over native (type interface {})