首頁  >  文章  >  後端開發  >  如何在 Go 中選擇有效的介面和接收者名稱?

如何在 Go 中選擇有效的介面和接收者名稱?

DDD
DDD原創
2024-11-12 07:02:02176瀏覽

How to Choose Effective Interface and Receiver Names in Go?

Go 中的介面命名約定

在Go 中建立介面時,必須遵循既定的命名約定,以增強可讀性並保持內部的一致性。程式碼庫。

一個常見的約定是對指定單一介面的介面使用「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 或介面:RoleChecker 或介面:RoleChecker 或介面RoleVerifier
  • 接收者:r或角色

或者,如果首選將兩種功能合併到一個介面中,則適當的名稱可以是 RoleManager。

記住,一致性是命名介面和接收器的關鍵。選擇清晰、具有描述性並遵守上述約定的名稱。這將提高 Go 程式碼的可讀性和可維護性。

以上是如何在 Go 中選擇有效的介面和接收者名稱?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn