学习golang要努力,但是不要急!今天的这篇文章《如何将接口切片更改为结构切片》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!问题
学习golang要努力,但是不要急!今天的这篇文章《如何将接口切片更改为结构切片》将会介绍到等等知识点,如果你想深入学习Golang,可以关注我!我会持续更新相关文章的,希望对大家都能有所帮助!
问题内容如何将接口切片设置为结构切片?
我定义接口
type ifoo interface{
//something methods
}
我定义结构
type foo struct{
id int `JSON:"id"`
//somethig fields
}
我创建了结构工厂,我想将 ifoo 切片更改为具体结构类型切片
func foofactory (p *[]ifoo) {
*p = *(*[]ifoo)(unsafe.pointer(&[]foo{})
//here i try something like unsafe.pointer, reflect.sliceheader but nothing does not works
}
然后我想将结果用于 unmarshal json:
func main() {
var o []IFoo
FooFactory(&o)
j := []byte(`[{"Id":1}, {"Id":2}]`)
json.Unmarshal (j, &o)
fmt.Println(o)
}
我得到[地图[id:1]地图[id:2]] 但我想得到 [{1} {2}]
如果我将 var o 定义为 []foo 我会得到预期的结果,但我不能使用具体的结构类型作为抽象。
怎么办?谢谢,抱歉我的英语不好。
我找到了解决方案
https://play.golang.org/p/syNVY0KTtM2
谢谢大家的帮助
今天关于《如何将接口切片更改为结构切片》的内容介绍就到此结束,如果有什么疑问或者建议,可以在编程网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
--结束END--
本文标题: 如何将接口切片更改为结构切片
本文链接: https://lsjlt.com/news/596467.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
2024-04-05
2024-04-05
2024-04-05
2024-04-04
2024-04-05
2024-04-05
2024-04-05
2024-04-05
2024-04-04
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0