golang学习笔记系列之标识符,关键字以及命名规则

发布于:2022-12-22 ⋅ 阅读:(196) ⋅ 点赞:(0)

标识符

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

标识符的规范要求

  • 由数字,字母,下划线组成
  • 不能以数字开头
  • 区分大小写
  • 尽量做到见名知意
//正确的标识符
var abc string
var a12 int
var _123 int[]

//错误的标识符
var 123abc int //不能以数字开头
var abc&afa string //出现了未知的字符

关键字

Go 共有 25 个保留关键字,各有其作用,不能用作标识符。Go 的 25 个关键字按照作用可以分为 3 类,分别为包管理、程序实体声明与定义与程序流程控制。

包管理(2个):
	import	package

程序实体声明与定义(8个):
	chan	const	func	interface	map	struct	type	var

程序流程控制(15个):
	break	case	continue	default	defer	else	fallthrough	
	for		go		goto		if		range	return	select		switch

除了上面的保留关键字,go语言还有36个预定义标识符,其中包含了基本类型名称和一些基本的内置函数,如下表:

append bool byte cap close complex
complex64 complex128 uint16 copy false float32
float64 imag int int8 int16 uint32
int32 int64 iota len make new
nil panic unit64 print println real
recover string true uint uint8 uintprt

命名规则

区分大小写

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

当命名以一个大写字母开头,如:Hello,那么使用这种形式的标识符的对象就可以被外部包的代码所使用(前提是导入了这个包),这被称为导出(类似于java中的public);命名如果以小写字母开头,则对包外是不可见的,但是它们在整个包的内部是可见并可用的(类似于java中的private)。

在这里插入图片描述

包名称

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

文件名

尽量采取简洁明了的文件名,简短,有意义,应该为小写单词,使用下划线分割各个单词。

结构体命名

一般采用驼峰命名法,首字母根据访问控制来规定大小写。

//客户订单
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
    

常量命名

常量均使用大写字母组成,并且使用下划线分割单词。

const APP_URL = “http://www.lll.plus”

如果是枚举类型的常量,需要首先创建相应的类型

type Scheme string

const (
	HTTP Scheme = "http"
    HTTPS Scheme = "https"
)

同步更新于个人博客系统:golang学习笔记系列之标识符,关键字以及命名规则

本文含有隐藏内容,请 开通VIP 后查看