AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
## 合约 想象一个场景,有一个函数show,接收参数A,然后显示这个参数中的内容.如果在定义这个show函数的使用就把形参的类型写死了.那么就永远只能显示A的内容了.如果有个类型B,也需要显示B中的内容,就得重新再写一个showAgain函数.但是如果使用了接口就不必这样了.我们定义一个接口,A和B都必须要实现里面的一个方法,那么Show只用写一次就可以了. ~~~ type Show interface { View() } type A struct { } func (receiver A) View() { fmt.Println("is A") } type B struct { } func (receiver B) View() { fmt.Println("is B") } func Display(a Show) { a.View() } func main() { a := A{} b := B{} Display(a) Display(b) } ~~~ ## 写接口的思路(自我理解) 接口是用来控制行为的,而行为是具体的.我们写代码不要上来就写接口,而是写到具体的行为(方法)时考虑这个行为再被调用时会不会有其他类型的重用的可能性.如果有的话就使用接口.然后让这个行为具体的类型去实现这个接口.