Go语言最佳实践——面向对象

对于接口,应使用组合而非继承的方式扩展;

对于结构体,应定义独立的结构体,而非用嵌套模拟继承。

值接收者和指针接收者:

1、对于不可变类型创建只接受值接收者的方法,而为可变的类型创建接受指针接收者的方法。

(对于可变类型,让部分方法接受值而让其他方法接受指针式完全可行的,但是使用中可能不太方便。)

2、对于大的结构体类型最好使用指针,这样能将开销保持在只传递一个指针的程度。