本文详解如何在 go 中正确定义和实现接口,通过构建一个表示数学区间的 `intervall` 接口及其实现类型 `complex`,涵盖字段设计、方法签名匹配、边界检查、字符串格式化等关键实践。
在 Go 中,接口是隐式实现的契约——只要一个类型提供了接口中所有方法的签名(名称、参数、返回值),它就自动实现了该接口,无需显式声明 implements。但要让接口真正可用,需注意若干关键细节。以下以修正后的 Intervall 接口为例,逐步说明正确实现方式。
✅ 正确的接口与结构体定义
首先,接口名应遵循 Go 命名惯例(首字母大写),且不能包含未导出字段或方法(如 New 是工厂方法,不应放在接口中——接口只描述“能做什么”,不规定“如何创建”)。原代码中 New(a, b float64) Intervall 放在接口内是典型误用,应移至包级函数。