关键字
- Go语言中的关键字和C语言中的关键字的含义样, 是指被Go语言赋予特殊含义的单词
- Go语言中关键字的特征和C语言也一样
- 全部都是小写
- 在开发工具中会显示特殊颜色
- Go语言中关键字的注意点和C语言也一样
- 因为关键字在C语言中有特殊的含义, 所以不能用作变量名、函数名等
C语言关键字和Go语言关键字对比
- C语言中一共有32个关键字
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
if | else | switch | case | default | break | return | goto |
do | while | for | continue | typedef | struct | enum | union |
char | short | int | long | float | double | void | sizeof |
signed | unsigned | const | auto | register | static | extern | volatile |
- Go语言中一共有25个关键字
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
---|---|---|---|---|---|---|---|
if | else | switch | case | default | break | return | goto |
fallthrough | for | continue | type | struct | var | const | map |
func | interface | range | import | package | defer | go | select |
chan |
- Go语言中除了关键字以外,还有30多个
预定义标识符
内建常量 | |||
---|---|---|---|
true | false | iota | nil |
內建类型 | |||
---|---|---|---|
int | int8 | int16 | int32 |
int64 | uint | uint8 | uint16 |
uint32 | uint64 | uintptr | float32 |
float64 | complex64 | complex128 | bool |
byte | rune | string | error |
內建函数 | |||
---|---|---|---|
make | len | cap | new |
append | copy | delete | real |
imag | panic | recover | complex |
标识符
- Go语言中的标识符和C语言中的标识符的含义样, 是指程序员在程序中自己起的名字(变量名称、函数名称等)
- 和C语言一样Go语言标识符也有一套
命名规则
, Go语言标识符的命名规则几乎和C语言一模一样- 只能由字母(a~z、 A~Z)、数字、下划线组成
- 不能包含除下划线以外的其它特殊字符串
- 不能以数字开头
- 不能是Go语言中的关键字
- 标识符严格区分大小写, test和Test是两个不同的标识符
- 和C语言标识符命名规则不同的是
- Go语言中_单独作为标识符出现时, 代表
空标识符
, 它对应的值会被忽略
package main import "fmt" func main() { // 将常量10保存到名称叫做num的变量中 var num int = 10 fmt.Println("num = ", num) // 忽略常量20,不会分配存储空间,也不会保存常量20 //var _ int = 20 //fmt.Println("_ = ", _) // cannot use _ as value // Go语言中如果定义了变量没有使用, 那么编译会报错(sub declared and not used) // 所以如果我们只使用了sum,没有使用sub会报错 // 为了解决这个问题, 我们可以使用_忽略sub的值 //var sum, sub int = calculate(20, 10) var sum, _ int = calculate(20, 10) fmt.Println("sum = ", sum) } func calculate(a, b int)(int, int) { var sum int = a + b var sub int = a - b return sum, sub }
- Go语言默认的编码方式就是UTF-8, 所以Go语言支持中文, 所以可以用中文作为标识符(非常非常非常不推荐)
package main import "fmt" func main() { // 不会报错, 可以正常运行 var 年龄 int = 33 fmt.Println("年龄 = ", 年龄) // 33 // 不会报错, 可以正常运行 var 结果 int = 计算器(10, 20) fmt.Println("结果 = ", 结果) // 30 } func 计算器(第一个变量, 第二个变量 int)int { return 第一个变量 + 第二个变量 }
- Go语言中_单独作为标识符出现时, 代表
- 和C语言一样,标识符除了有
命名规则
以外,还有标识符命名规范
- 规则必须遵守, 规范不一定要遵守, 但是建议遵守
- Go语言的命名规范和C语言一样, 都是采用驼峰命名, 避免采用_命名
- 驼峰命名: sendMessage / sayHello
- _命名: send_message / say_hello