关注
你的理解基本上是正确的。在 Go 中,slice 是一个引用类型,它包含了一个指向底层数组的指针、长度和容量。当你将一个 slice 作为参数传递给函数时,实际上是将 slice 的副本传递给函数,但是这个副本仍然指向相同的底层数组。
如果函数内部修改了 slice 的长度(例如使用 append 函数),那么会创建一个新的底层数组,并将原有的元素复制到新的数组中。这时,函数内部的 slice 和外部的 slice 将指向不同的底层数组。
如果函数内部只是修改了 slice 中的某个元素的值,而不改变长度,那么修改会影响到外部的 slice,因为它们共享同一个底层数组。
总结起来,当你传递一个 slice 给函数时,函数内部对 slice 的修改会影响到外部的 slice,除非函数内部改变了 slice 的长度。
查看原帖
1 2
相关推荐
06-12 17:46
门头沟学院 Java 
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习生的蛐蛐区 #
47182次浏览 362人参与
# 夸夸我的求职搭子 #
199880次浏览 1917人参与
# 你认为小厂实习有用吗? #
17557次浏览 217人参与
# 硬件应届生薪资是否普遍偏低? #
75122次浏览 518人参与
# 应届生,你找到工作了吗 #
19567次浏览 144人参与
# 三一重工求职进展汇总 #
13072次浏览 60人参与
# 材料人,你们签了哪个公司 #
7233次浏览 17人参与
# 说说你知道的学历厂 #
33373次浏览 194人参与
# 计算机有哪些岗位值得去? #
15164次浏览 142人参与
# 下班后的时间你怎么安排 #
9120次浏览 131人参与
# 你找工作的时候用AI吗? #
16781次浏览 217人参与
# 面试尴尬现场 #
28530次浏览 193人参与
# 在职场上,你最讨厌什么样的同事 #
14963次浏览 151人参与
# 哪一瞬间觉得自己长大了 #
8320次浏览 183人参与
# 中核求职进展汇总 #
20567次浏览 152人参与
# 社会教会你的第一课 #
32759次浏览 424人参与
# 电网笔面经互助 #
36565次浏览 354人参与
# lastday知无不言 #
57533次浏览 469人参与
# 简历当中有水分算不算造假? #
26208次浏览 385人参与
# 如何拒绝/反向PUA #
68946次浏览 356人参与