一、注释
Go语言的注释主要分成两类,分别是单行注释和多行注释。
1.1、单行注释
单行注释简称行注释,是最常见的注释形式,可以在任何地方使用以//
开头的单行注释;
// 单行注释
1.2、多行注释
多行注释简称块注释,以/*
开头,并以*/
结尾,且不可以嵌套使用,多行注释一般用于包的文档描述或注释成块的代码片段。
/*
这是多行注释
可以跨越多行
*/
1.3、注释使用场景
- 解释函数和方法的作用和参数含义,提高代码可读性和可维护性。
// Add 函数将两个整数相加,并返回和
func Add(a, b int) int {
return a + b
}
- 标记代码的作者、时间、版本等信息,方便代码管理和维护。
/*
Author: John
Date: 2021-10-01
Version: 1.0
*/
- 禁用或调试代码段,方便排查bug和测试代码。
// TODO: implement this function
func MyFunction() {
// debug info
fmt.Println("Debug info...")
}
二、关键字
关键字,也称保留字。
Go语言中的关键字一共有 25 个:
break | default | func | interface | select |
---|---|---|---|---|
case | defer | go | map | struct |
chan | else | goto | package | switch |
const | fallthrough | if | range | type |
continue | for | import | return | var |
和其它语言一样,关键字不能够作标识符使用。
二、标识符
在 Go 语言中,标识符是指用来标识程序实体(如变量、函数、结构体等)的名称。标识符由若干个字母、下划线_、和数字组成,且第一个字符必须是字母。通俗的讲就是凡可以自己定义的名称都可以叫做标识符。
2.1、标识符命名规则
- 标识符由字母、数字、下划线(_)组成,不能以数字开头。
- 标识符区分大小写,例如Foo和foo是两个不同的标识符。
- 不能使用Go语言的关键字作为标识符。
- 标识符应该具有一定的描述性,可以简洁明了地表达其含义。
- 使用驼峰命名法,即首字母小写,后面每个单词的首字母大写,例如myName、myAge等。
- 对于包内私有的变量和函数,可以使用下划线(_)作为前缀,例如_privateFunction、_privateVariable。
- 标识符不能包含空格
- 不能和标准库中的包名重复
- 标识符的命名要尽量采取简短且有意义
2.2、空白标识符
在Go语言中,_
(下划线)被称为“空白标识符”,它可以用于占位符或忽略某个值。使用场景如下:
- 忽略某个变量的值
// 仅获取文件信息,忽略错误
info, _ := os.Stat("example.txt")
- 忽略import语句中的包
import (
"fmt"
_ "net/http/pprof" // 忽略该包
)
- 忽略函数返回值或参数
// 忽略函数的返回值
_, err := doSomething()
// 忽略函数的参数
func doSomething(_, b int) {
// ...
需要注意的是,空白标识符只能被用作占位符或忽略某个值,即任何赋给这个标识符的值都将被抛弃,因此这些值不能在后续的代码中使用,也不可以使用_
作为变量对其它变量进行赋值或运算。
2.3、首字母大小写区别
在Go语言中,标识符(变量名、函数名、常量名等)的首字母大小写有着不同的含义和作用。
- 首字母大写的标识符表示该标识符是导出的(public),可以被其他包访问和使用。
- 首字母小写的标识符表示该标识符是未导出的(private),只能在当前包中使用。
2.4、预定义标识符
预定义标识符一共有 36 个,主要包含Go语言中的基础数据类型和内置函数,这些预定义标识符也不可以当做标识符来使用。
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 | uint64 | println | real | |
recover | string | true | uint | uint8 | uintptr |
三、运算符的优先级
运算符是用来在程序运行时执行数学或逻辑运算的,所谓优先级,就是当多个运算符出现在同一个表达式中时,先执行哪个运算符。
下表为运算符优先级详情表,从上到下优先级越来越低
分类 | 运算符 | 结合性 |
---|---|---|
后缀运算符 | ( ) 、[ ] 、-> | 从左到右 |
单目运算符 | ! 、*(指针)、& 、++ 、-- 、+ (正号)、- (负号) | 从右到左 |
乘法/除法/取余 | * (乘号)、/ 、% | 从左到右 |
加法/减法 | + 、- | 从左到右 |
位移运算符 | << 、>> | 从左到右 |
关系运算符 | < 、<= 、> 、>= | 从左到右 |
相等/不等 | == 、!= | 从左到右 |
按位与 | & | 从左到右 |
按位异或 | ^ | 从左到右 |
按位或 | | | 从左到右 |
逻辑与 | && | 从左到右 |
逻辑或 | || | 从左到右 |
赋值运算符 | = 、+= 、-= 、*= 、/= 、 %= 、 >= 、 <<= 、&= 、^= 、|= | 从右到左 |
逗号运算符 | , | 从左到右 |
参考文档
1、http://c.biancheng.net/view/5559.html