一道常见的 Go 面试题是:把切片传给函数,在函数里执行 append,调用方的数据会不会改变?

回答“切片是引用类型,所以会变”,或者“Go 只有值传递,所以不会变”,都不完整。这个细节在参数拼装、权限列表、查询过滤条件中经常造成偶发覆盖。通过几段短代码,就能把它变成开发中真正有用的小技巧。

先看一个最简单的函数,它试图给列表追加一个元素: