授课语音

Go 命名规范

Go 语言有一套严格的命名规范,旨在提高代码的可读性、可维护性和与其他 Go 项目的一致性。以下是 Go 语言中的命名规范。

1. 包名命名规范

  • 小写字母:包名必须使用小写字母,且不能包含下划线或驼峰命名。

  • 简洁且有意义:包名应简洁且能准确描述该包的功能。

    例如:

    import "net/http"
    import "fmt"
    
  • 避免使用泛泛包名:例如,不要使用 utilscommon 这样的包名。应该尽量使用明确的功能描述。

2. 变量命名规范

  • 简短且具描述性:变量名应该简短、易懂,且具备描述性。避免使用单字母命名,除非是在循环等场景中使用。

    例如:

    var totalAmount float64
    var userAge int
    
  • 驼峰命名法:Go 采用驼峰命名法(camelCase),变量名应以小写字母开始。

    例如:

    var userCount int
    var isValid bool
    
  • 避免过于简化的变量名:避免使用单一字母作为变量名,除非是 ij 等常用于循环的变量。

3. 常量命名规范

  • 大写字母:常量名应使用全大写字母,单词之间使用下划线分隔。

    例如:

    const MAX_CONNECTIONS = 100
    const PI = 3.14
    
  • 描述性:常量的名称应该具有描述性,能够明确表达常量的含义。

4. 函数命名规范

  • 动词开头:函数名应以动词开头,描述函数的动作或行为。

    例如:

    func CalculateTotal() float64
    func SendMessage()
    
  • 驼峰命名法:与变量一样,函数名也使用驼峰命名法,首字母小写表示私有,首字母大写表示公有。

5. 方法命名规范

  • 描述性:方法名应简洁且描述性强,避免过于复杂的名称。

    例如:

    func (u *User) UpdateName(name string)
    func (a *Account) Withdraw(amount float64)
    

6. 接口命名规范

  • 以“er”结尾:Go 推荐接口名以表示行为的名词加“er”后缀,例如 ReaderWriter

    例如:

    type Reader interface {
        Read(p []byte) (n int, err error)
    }
    type Writer interface {
        Write(p []byte) (n int, err error)
    }
    

7. 结构体命名规范

  • 首字母大写:结构体类型名称应首字母大写,以便在包外使用。

    例如:

    type User struct {
        Name  string
        Email string
    }
    
  • 简洁且描述性强:结构体名称应简洁明了,能够准确反映结构体的含义。

8. 包名和文件名的命名规范

  • 包名与文件名一致:包的名称和文件名应一致,包名通常使用小写字母,避免使用下划线或数字。

    例如:

    // package user
    // file: user.go
    
  • 避免使用与 Go 保留关键字冲突的名称:避免使用与 Go 语言保留关键字相同的名称,例如 functype 等。

去1:1私密咨询

系列课程: