当函数A把切片作为参数传给函数B时,这是值传递还是引用传递?如果B对切片执行append操作,函数A中的原始切片能否感知到变化?
考察说明
考察对Go语言切片底层结构和值传递语义的理解,以及append操作对共享底层数组的影响
回答思路
- 明确指出切片传递是值传递,但包含指向底层数组的指针
- 解释切片结构(指针、长度、容量)在传递时被复制,但底层数组共享
- 分析append操作在容量足够和不足两种情况下的差异,以及对原切片长度和内容的影响
- 说明调用者能否感知取决于append是否改变底层数组以及原切片长度是否更新
本题已收录答题指导
本题附完整参考答案与评分标准
登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。