type A struct{}
func test(a *A) {
}
我们在调用test方法时,参数a
传递的类型可能为 a *A
或者 a A
,既然传递指针的时候可以减少值拷贝,为什么参数不统一传递一个指针类型呢,不管读取或者修改对象都很方便(排除map和slice这种参数,同样排除掉那种只想传递值拷贝的情况)
type A struct{}
func test(a *A) {
}
我们在调用test方法时,参数a
传递的类型可能为 a *A
或者 a A
,既然传递指针的时候可以减少值拷贝,为什么参数不统一传递一个指针类型呢,不管读取或者修改对象都很方便(排除map和slice这种参数,同样排除掉那种只想传递值拷贝的情况)
7 回答5.3k 阅读
6 回答6.8k 阅读✓ 已解决
4 回答2.3k 阅读
1 回答3.4k 阅读
2 回答935 阅读✓ 已解决
2 回答2.3k 阅读
1 回答2.2k 阅读
误修改。自己写代码到没什么,假入项目很大,或者你写的开源库,一定要保证字段的归属问题。一般的解决方案都是不可导出字段加方法。
作为函数的参数的时候,传递指针有时候需要频繁的
取值
操作。而方法的接受者指针可以自动转换。