一.声明接口 type Result interface { LastInsertId() (int64, error) RowsAffected() (int64, error) } 二.实现接口,这里却将接口作为成员变量,进而将接口的实现转换为接口的调用,仅仅是封装了接口,实际上并没有真的实现,而是坐等别人去实现 // 一把锁 // 一个结果集的假接口实现,表示需要的功能,让他人来具体实现.假装实现了某个接口,其实是调用了内部接口的对应方法 type driverResult struct…