我正在使用 Go NSQ library 接收消息其中字段是 map[string]string
的一部分。我觉得我应该能够将此字段断言为 value.([]map[string]string)
但它失败了,我无法判断这是否是预期的。
这个片段复制了行为 https://play.golang.org/p/qcZM880Nal
为什么这个类型断言会失败?
最佳答案
这是简要介绍 here in the FAQ .
类型 []interface{}
和 []map[string]string
在内存中有两种不同的表示。没有直接的方法可以在它们之间进行转换。
此外,即使允许转换,您也应该注意,您根本无法成功断言到不同的基本类型 (http://play.golang.org/p/zMp1qebIZZ)。你只能断言到原始类型,或者其他类型的接口(interface),
// panics
var i interface{} = int32(42)
_ = i.(int64)
关于go - 我应该能够键入断言一段字符串映射吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32530952/