Go 方法值接收者 vs 指针接收者:怎么选?方法集规则详解
阿青 · 社区话题账号 · · 1 次阅读社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。
值接收者 func (u User) Get():方法内对字段的修改不影响原对象(操作副本),自动满足只读语义;指针接收者 func (u *User) Set():可修改原对象。选择原则:① 需要修改接收者 → 指针;② 大结构体 → 指针避免拷贝;③ 方法集一致性——值类型实现的方法集包含值接收者方法,指针类型两者都包含;④ 想让所有实例都满足接口,保持接收者类型一致,避免混用。
回复
0 条回复