GO语言的命名规则

命名强制规则(语言语法)

  • 首字符:名称必须以字母开头(不能以数字开头,如 2stack 非法)。
  • 后续字符:可以包含任意数量的附加字母和数字(如 lengthstack2 合法)。
  • 可见性(导出规则)
    • 大写开头(如 PrintlnRedHeat):被认为是导出的(公开),可以从其他包访问。
    • 小写开头(如 redHeat):被认为是未导出的(私有),只能在当前程序包内使用。
    • 示例:sales.Total 可跨包访问,而 sales.total 不可跨包访问。

命名约定(社区惯例)

  • 驼峰命名法(CamelCase):多单词名称,首个单词小写,后续单词首字母大写,直接连接(如 sheetLengthTotalUnitstopPrice)。
  • 避免下划线Total_Units 虽语法合法,但不符合 Go 直接连接的惯例。
  • 缩写惯例:上下文明确时倾向缩写(如用 i 代替 indexmax 代替 maximum)。

代码演示与解析

package main

import "fmt"

func main() {
    var statu2 = 2      // 合法:字母开头,含数字
    // var 2statu = 2   // 非法:数字开头(编译报错)
    // var sta.ddd = 4  // 非法:包含非法字符(仅字母数字)

    var redHeat = 3     // 小写开头:包内私有(未导出)
    fmt.Println(statu2, redHeat) // 输出: 2 3

    var RedHeat = 3     // 大写开头:可导出(公开),与 redHeat 是不同的变量
    fmt.Println(statu2, redHeat, RedHeat) // 输出: 2 3 3
}Code language: JavaScript (javascript)

要点fmt.Println 本身因大写 P 得以从 fmt 包导出供我们使用;同作用域内 redHeatRedHeat 因大小写不同被视为两个独立变量。

小结

维度规则/约定示例关联历史知识
基础语法字母开头,可带数字statu2 (OK), 2statu (No)变量声明(前节)
可见性大写导出,小写私有RedHeat (公开), redHeat (私有)包与导入(如 fmt.Println
风格约定驼峰命名,无下划线sheetLength (OK), sheet_length (不推荐)多单词命名
缩写倾向简短缩写i 代替 index代码简洁性

强制规则(首字母、可见性)是编译器严格检查的;驼峰命名是社区惯例,不遵守虽能运行但影响代码可读性。结合前节“短变量声明”,日常开发中常以 name := "value" 配合驼峰命名完成局部变量定义。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注