”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 如何在 Go 中选择有效的接口和接收者名称?

如何在 Go 中选择有效的接口和接收者名称?

发布于2024-11-14
浏览:737

How to Choose Effective Interface and Receiver Names in Go?

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 ...
}

根据建议的约定,上述代码的合适接口和接收器名称可以是:

  • 接口:RoleChecker 或 RoleVerifier
  • 接收器:r 或 role

或者,如果首选将两种功能合并到一个界面中,则合适的名称可以是RoleManager.

请记住,一致性是命名接口和接收者的关键。选择清晰、具有描述性并遵守上述约定的名称。这将提高 Go 代码的可读性和可维护性。

最新教程 更多>

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3