命名标识符
在 Go 语言中标识符就是程序员定义的具有特殊意义的词,比如变量名、常量名、函数名等等。
- 支持的命名写法
- 小驼峰 myVariable
- 大驼峰 MyVariable
- 下划线 _funcName
- 普通写法: data data2
- 不支持的命名写法
- 不能以数字开头: 2variable
- 不能以连接符: my-variable
- 不要使用关键字:for if else
- 特殊意义的命名
- 错误命名通常:以Err开头例如:ErrNotFound、ErrInvalidInput。
- 测试函数命名:测试函数应该以Test开头,后跟被测试函数的名称,并且第一个字母应该大写。例如:TestFunctionName()。
- 包的公共和私有成员:首字母大写为公有可导出使用,小写为私有只能在当前包使用 (变量名 函数名 结构体名以及属性名)
关键字
在 Go 语言中,关键字具有特定的语法含义,它们用于定义语言的结构和语法规则。关键字在代码中具有特殊的含义,编译器会根据这些关键字来解析和执行代码,从而保证代码的正确性和一致性
- 包关键字
- package 包名
- import 引入包
- 流程关键字
- if + else 用于条件判断,根据条件的真假执行不同的分支
- for + rang { break continue } 用于迭代数组、切片、映射或通道中的元素,break 和 continue 用于控制循环的执行。
- switch { case + default } 用于多路分支选择
- select { case + default } 用于从多个通道中选择发送和接收操作,用于通道的循环处理
- defer 函数结束会执行带此关键字的函数(在当前函数内部定义)定义最早执行越晚
func setup() { fmt.Println(1) } func main() { defer setup() defer fmt.Println(2) fmt.Println(3) } // 结果 3 2 1 - return 终止函数并返回结果
- goto 跳转到代码中的指定位置 (不建议使用)
func main() { var i int = 0 if i < 5 { goto Loop // 跳转到标签 loop 处继续执行 } Loop: // 定义一个标签 fmt.Println("i<5") }
- 函数关键字
- 特殊: main init 为程序自动执行函数 main入口函数 init初始化函数可重复写 init比main提前执行
- make len cap new append copy close delete
- complex real imag string
- panic recover
- 声明关键字
- var
- const
- type
- func
- struct
- 数据关键字
- map
- []
- chan
- true
- false
- nil
- 类型关键字
- 有符号数字:int int8 int16 int32 int64 (-1 0 1)
- 无符号整型:uint uint8 uint16 uint32 uint64 ()
- 浮点数:float32 float64
- 复数:complex128 complex64
- 布尔:bool
- 字节:byte
- 字符:string
- 特殊:
error错误类型any任何类型interface{}接口类型和any一样runeUnicode字符,它的码点是U+4E2D