Golang 学习笔记——标识符-关键字-命名规则

Golang

This article was last updated on <span id="expire-date"></span> days ago, the information described in the article may be outdated.

Go 标识符 - 关键字 - 命名规则

标识符

标识符的英文是 identifier,通俗的讲,就是给变量、常量、函数、方法、结构体、数组、切片、接口起名
字。

标识符的组成:

  1. 标识符由数字、字母和下划线 (_) 组成。123abc_
  2. 只能以字母和下划线 (_) 开头。abc123_sysVar123abc
  3. 标识符区分大小写。nameName NAMET

标识符的命名

package main

func main() {
 // 正确的标识符
 var name string
 var age int
 var _sys int

 /*
  错误的标识符
  var 1name string
  var &age int
 */

}

Go 关键字

Go 语言命名规范

Go 是一门区分大小写的语言。

命名规则涉及变量、常量、全局函数、结构、接口、方法等的命名。G0 语言从语法层面进行了以下限定:任何需要对外暴露的名字必须以大写字母开头,不需要对外暴露的则应该以小写字母开头。

Go 命名的可见性

当命名 (包括常量、变量、类型、函数名、结构字段等等) 以一个大写字母开头,如:GetUserName,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(客户端程序需要先导入这个包),这被称为 导出(像面向对象语言中的 public);命名如果以小写字母开头,则对包外是不可见的,但是他们在整个包的内部是可见并且可用的 (像面向对象语言中的 private)

包名称

保持 package 的名字和目录保持一致,尽量采取有意义的包名,简短,有意义,尽量和标准库不要冲突。包名应该为小写单词,不要使用下划线或者混合大小写。

package dao
package service

文件命名

尽量采取有意义的文件名,简短,有意义,应该为小写单词,使用下划线分隔各个单词。customer_dao.go

结构体命名

采用驼峰命名法,首字母根据访问控制大写或者小写 struct 申明和初始化格式采用多行,例如下面:

type CustomerOrder struct{
Name string
Address string
}
order:=CustomerOrder{"tom","北京海淀"}

接口命名

命名规则基本和上面的结构体类型
单个函数的结构名以“er”作为后缀,例如 Reader,Writer.

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

变量命名

和结构体类似,变量名称一般遵循驼峰法,首字母根据访问控制原则大写或者小写,但遇到特有名词时,需要遵循以下规则:
如果变量为私有,且特有名词为首个单词,则使用小写,如 appService 若变量类型为 bool 类型,则名称应以 Has,Is,Can 或 Allow 开头

var isExist bool
var hasConflict bool
var canManage bool
var allowGitHook bool

Author: WhaleFall

Permalink: https://www.whaleluo.top/golang/golang-id-note/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

Comments