关注
你的理解基本上是正确的。在 Go 中,slice 是一个引用类型,它包含了一个指向底层数组的指针、长度和容量。当你将一个 slice 作为参数传递给函数时,实际上是将 slice 的副本传递给函数,但是这个副本仍然指向相同的底层数组。
如果函数内部修改了 slice 的长度(例如使用 append 函数),那么会创建一个新的底层数组,并将原有的元素复制到新的数组中。这时,函数内部的 slice 和外部的 slice 将指向不同的底层数组。
如果函数内部只是修改了 slice 中的某个元素的值,而不改变长度,那么修改会影响到外部的 slice,因为它们共享同一个底层数组。
总结起来,当你传递一个 slice 给函数时,函数内部对 slice 的修改会影响到外部的 slice,除非函数内部改变了 slice 的长度。
查看原帖
1 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 哪些公司开春招了? #
41579次浏览 232人参与
# 关于提前批我想问 #
278908次浏览 2344人参与
# 小厂一定不能去吗? #
2770次浏览 56人参与
# 如果没找到工作,考公是你的退路吗 #
64828次浏览 454人参与
# 哪些公司开暑期实习了? #
910次浏览 14人参与
# 实习心态崩了 #
105830次浏览 537人参与
# 为了秋招你都做了哪些准备? #
33272次浏览 539人参与
# 通信/硬件求职避坑tips #
143697次浏览 1092人参与
# 计算机专业还有必要去大厂卷吗 #
57112次浏览 232人参与
# 牛友的志愿填报指南 #
54246次浏览 386人参与
# 秋招笔试记录 #
366996次浏览 2103人参与
# 应届生,你找到工作了吗 #
116726次浏览 714人参与
# 通信硬件薪资爆料 #
1241637次浏览 7219人参与
# 我的求职精神状态 #
436401次浏览 3110人参与
# 业务面应该做哪些准备 #
98631次浏览 1103人参与
# 如果再来一次,你还会学硬件吗 #
156176次浏览 1471人参与
# 23届的你们都什么时候入职? #
238177次浏览 1124人参与
# 机械制造薪资爆料 #
1946945次浏览 11048人参与
# 你找工作的时候用AI吗? #
183213次浏览 934人参与
# 一人推荐一个机械人值得去的公司 #
473760次浏览 4288人参与