Go 中的接口命名约定
在 Go 中创建接口时,必须遵循既定的命名约定,以增强可读性并保持内部的一致性。 codebase.
一个常见的约定是对指定单个方法的接口使用“er”后缀。例如,Reader、Writer 和 Formatter 等接口就遵循此规则。
对于具有多个方法的接口,建议选择一个能够准确描述其用途的名称。示例包括 net.Conn(用于网络连接)、http.ResponseWriter(用于 HTTP 响应)和 io.ReadWriter(用于读取和写入)。
命名接收器对象时,建议避免使用通用术语,例如这个或自己。相反,请使用反映接收者类型的缩写,例如 c 代表 Client 或 sh 代表 serverHandler。
考虑以下示例:
type Role string type RolesHierarchy []Role // IsRole verifies if a role is within the hierarchy. func (r Role) IsRole(role Role, hierarchy RolesHierarchy) bool { // ... Implementation ... } // AssumeRole sets the role in the session. func (r *Role) AssumeRole(session ServerSession, role Role) { // ... Implementation ... }
根据建议的约定,上述代码的合适接口和接收器名称可以是:
或者,如果首选将两种功能合并到一个界面中,则合适的名称可以是RoleManager.
请记住,一致性是命名接口和接收者的关键。选择清晰、具有描述性并遵守上述约定的名称。这将提高 Go 代码的可读性和可维护性。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3