Go 中的传参是值传递还是引用传递? # Go语言中所有的传参都是值传递(传值): 拷贝的内容有时候是非引用类型(int、string、struct等这些),这样就在函数中就无法修改原内容数据; 有的是引用类型(指针、map、slice、chan等这些),这样就可以修改原内容数据。 之所以会出现有些类型可能为“引用”传递的错觉,是因为 fmt 包中对这些类型(slice、map、chan)做了特殊处理。 References # https://www.flysnow.org/2018/02/24/golang-function-parameters-passed-by-value.html https://segmentfault.com/a/1190000015246182 https://segmentfault.com/a/1190000037763005