Go 语言的接口设计秉承了“鸭子类型”(Duck Typing)的哲学:如果它走起来像鸭子,叫起来像鸭子,那么它就是鸭子。
隐式实现
与 Java 不同,Go 中不需要使用 implements 关键字声明实现了哪个接口。只要结构体实现了接口定义的所有方法,就自动实现了该接口。这极大降低了代码的耦合度。
空接口 interface{}
空接口可以接收任何类型的值。在需要处理未知类型的场景(如 JSON 解析、通用缓存)非常有用,但在业务代码中应谨慎使用,避免丧失类型安全。