作者回复: 不用担心,多看看我给的例子,多改多试
作者回复: 之所以穿指针是为了数据复制,interface是协议定义并不包含数据
作者回复: 因为借口类型需要对应的是指针类型的实例。new返回的就是指向实例的指针
作者回复: 这里要用指针才行: animal := append(zoo, &dog1)
作者回复: 通常先定义两个模块交互的方法,这些方法定义在接口里。然后,模块都依赖于接口。各模块的分别实现自己的,接口就像协议。
作者回复: 函数定义是必须按照函数签名展开的
作者回复: 这里是方法类型的定义,就像你定义struct,这里不是类型转化。 至于性能和消耗,接下我的课程会讲如何benchmark代码,留给你自己实验分析得出结论,并分享给大家
作者回复: 你想说的是override吧,是指子类覆盖父类的方法,至于overload是指同一个类中方法名相同,但参数不同的方法。 上面代码,并不属于这些,只是同一接口的不同实现。
作者回复: 改为func write_sth(p Programmer)