请教一下这句代码的作用

2022 年 6 月 21 日
 Ossi

components 是一个参数,类型是[]string ,不知道第四行代码的作用是干啥的。。 求教一下

1	if len(components) == 0 {
2 	  components = []string{":" + verb}
3	} else {
4 	  components = append([]string{}, components...)
5  	 components[len(components)-1] += ":" + verb
6	}
1562 次点击
所在节点    Go 编程语言
7 条回复
Ritter
2022 年 6 月 21 日
deep copy 么
molly2mollyzyz
2022 年 6 月 21 日
拷贝对象?
ikw
2022 年 6 月 21 日
得结合上下文,目测是为了复制出来一份 components ,以免影响到函数调用方的 components
Ossi
2022 年 6 月 21 日
@zwpaper 感谢,没往这方面想
ikw
2022 年 6 月 21 日
但是我还有点疑惑,下面是还会给 components 增加内容吗?为啥不用 copy ?
Ossi
2022 年 6 月 21 日
@zwpaper 下面有很多读取 components 的操作,应该是为了不影响读取吧
https://stackoverflow.com/questions/27055626/concisely-deep-copy-a-slice
ikw
2022 年 6 月 21 日
copy 也不影响读取,看你发的 so 的 benchmark ,append 性能不输 copy ,append 代码会简洁些,也许是这个考虑

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/861165

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX