- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
type Foo struct {
M map[string]interface{} `json:"m"`
}
type Bar struct {
I int `json:"i"`
}
type Bar2 struct {
S string `json:"s"`
}
func do() {
concreteFoo1 := Foo {
M: make(map[string]Bar),
}
json.Unmarshal([]byte(`{"m": {"a": { "i": 1 }}}`), &concreteFoo1)
concreteFoo2 := Foo {
M: make(map[string]Bar2),
}
json.Unmarshal([]byte(`{"m": {"a": { "s": "hello" }}}`), &concreteFoo2)
}
编译失败:
cannot use make(map[string]Bar) (type map[string]Bar) as typemap[string]interface {} in field value
cannot use make(map[string]Bar2) (type map[string]Bar2) as typemap[string]interface {} in field value
我怎样才能让它编译并支持 Foo 的两种变体?
最佳答案
将 Foo.m
更改为 map[string]Bar
而不是您拥有的,这将允许它编译。要使其工作,您需要将 Foo.m
更改为 Foo.M
并将 Bar.i
更改为 Bar.I
。 Go JSON 库不会对未导出的属性进行解码或编码。将大写属性映射到小写 JSON 元素需要使用标签。完整的工作示例 here .
关于json - 反序列化为 map[string]interface{} 作为具体的 map 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47405010/
出于好奇,我尝试了一些原型(prototype)制作,但似乎只允许在第一个位置使用子例程的原型(prototype) &。 当我写作时 sub test (&$$) { do_somethin
我需要开发一个类似于 Android Play 商店应用程序或类似 this app 的应用程序.我阅读了很多教程,发现几乎每个教程都有与 this one 类似的例子。 . 我已经开始使用我的应用程
考虑一个表示“事件之间的时间”的列: (5, 40, 3, 6, 0, 9, 0, 4, 5, 18, 2, 4, 3, 2) 我想将这些分组到 30 个桶中,但桶会重置。期望的结果: (0, 1,
我是一名优秀的程序员,十分优秀!