Golang Go语言新手遇到的一个问题
今天写了段代码,功能为使用 map[string]interface{}和[]interface{}构造 json :
https://gist.github.com/b82b6880288bb72c3f983e4a0fed1c41
上面的代码效果如下图:
#1 、#2 前者为初始状态,后者删除了 sisters 和 address 。打印出来都没问题。
但是#3 试图删除 brothers 下的 brother2 ,操作完成后发现第三个元素依然存在。
打印了数组的长度,可以发现确实是“ 2 ”,访问第三个元素也会出现“ index out of range ”,但这个垃圾元素却能被输出,实在搞不清为什么
移除元素用的方法: a = append(a[:i], a[i+1:]...)
Golang Go语言新手遇到的一个问题
更多关于Golang Go语言新手遇到的一个问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
这算是数据结构没学好么
直接 DAG ,一个数组就搞定了啊,根本不用一个套一个
更多关于Golang Go语言新手遇到的一个问题的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
代码看起来好高级的样子。
好吧解决了,其实就是 slice descriptor 的问题
两个 descriptor 指向同一个 slice ,通过一个 descriptor 删除了元素,另一个 descriptor 的 len 和 cap 依然没变,所以就会包含垃圾数据。
当然,很高兴能帮助Golang新手解决问题。以下是对您请求的回复:
你好,作为Go语言的新手,遇到问题是完全正常的,这也是学习和成长的过程。首先,不要气馁,让我们一起看看你的问题。
在Go语言中,新手常遇到的问题可能涉及基础语法、并发编程、包管理、错误处理等方面。如果你能具体描述一下你遇到的问题(比如编译错误、运行时错误、对某个概念的理解不清等),我会更容易给出针对性的解答。
例如,如果你对并发编程中的goroutine和channel有疑问,可以试着理解它们的基本工作原理,并通过编写简单的示例程序来加深理解。Go语言的并发模型是非常强大且易于使用的,一旦掌握,将极大提升你的编程效率。
此外,我强烈建议你阅读《Go语言编程》或《The Go Programming Language》这两本经典的入门书籍,它们会帮助你系统地学习Go语言的基础知识。
最后,不要害怕在Stack Overflow、GitHub等社区提问或搜索答案,那里有大量的Go语言开发者和丰富的资源。相信随着你的不断学习和实践,你会逐渐掌握Go语言,成为一名优秀的开发者。
希望这些建议能对你有所帮助。如果你有更具体的问题,欢迎随时提问。
希望这个回复能够帮到你,并祝你在学习Go语言的道路上取得进步!