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这种参数,同样排除掉那种只想传递值拷贝的情况)
2 回答1.3k 阅读
2 回答1.1k 阅读
2 回答1.1k 阅读
2 回答889 阅读
3 回答708 阅读
1k 阅读
1 回答803 阅读
误修改。自己写代码到没什么,假入项目很大,或者你写的开源库,一定要保证字段的归属问题。一般的解决方案都是不可导出字段加方法。
作为函数的参数的时候,传递指针有时候需要频繁的
取值
操作。而方法的接受者指针可以自动转换。