在go中解码avro返回map[string]接口{},但不能覆盖范围(类型接口{})
以下是avro解码的输出:在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
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 {})