Below you will find pages that utilize the taxonomy term “Slice”
May 3, 2020
Golang遍历切片删除元素引起恐慌问题
"\u003cp\u003e删除一个切片的部分元素, 告知切片操作:\u003ca href=\"http://cn.voidcc.com/question/p-mkbvfagj-hy.html\"\u003eGolang遍历切片恐慌时删除元素\u003c/a\u003e\u003c/p\u003e\n\u003ch2 id=\"问题描述\"\u003e问题描述\u003c/h2\u003e\n\u003cp\u003e代码( \u003ca href=\"https://go.dev/play/p/Kyvo7YQuw1m\"\u003e演示代码\u003c/a\u003e):\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epackage main\n\nimport (\n\t\u0026#34;fmt\u0026#34;\n)\n\nfunc main() {\n\tslice := []int{1, 2, 3, 4, 5, 6, 7, 8, 9}\n\tfor i, value := range slice {\n\t\tif value%3 == 0 { // remove 3, 6, 9\n\t\t\tslice = append(slice[:i], slice[i+1:]...)\n\t\t}\n\t}\n\tfmt.Printf(\u0026#34;%v\u0026#34;, slice)\n}\n\u003c/code\u003e\u003c/pre\u003e\u003cp\u003e运行结果\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003epanic: runtime error: slice bounds out of range [8:6]\n\ngoroutine 1 [running]:\nmain.main()\n\t/tmp/sandbox2635969259/prog.go:11 +0x212\n\nProgram exited.\n\u003c/code\u003e\u003c/pre\u003e\u003ch2 id=\"解决办法\"\u003e\u003cstrong\u003e解决办法:\u003c/strong\u003e\u003c/h2\u003e\n\u003cp\u003e以下是网友想到的几种办法\u003c/p\u003e\n\u003cp\u003e1、使用\u003ccode\u003egoto\u003c/code\u003e和标签\u003c/p\u003e\n\u003cpre tabindex=\"0\"\u003e\u003ccode\u003efunc …\u003c/code\u003e\u003c/pre\u003e"