1. Go语言基础
Go语言的词法元素包括5种,分别是关键字、标识符、操作符、分隔符和字面量,它们是组成Go语言代码和程序的基本单位。
1.1 关键字
关键字也称保留字,是指在Go语言中有特定含义,成为Go语言语法中的一部分单词。Go语言中的关键字一共有25个,关键字和其功能描述如下:
关键字 | 功能描述 |
---|---|
break | 跳出整个循环 |
default | 设置默认值,常与switch语句和select语句结合使用 |
func | 定义函数或方法 |
interface | 定义接口 |
select | 选择结构语句,常与case和default结合使用 |
case | 选择结构,常与switch语句和select语句结合使用 |
defer | 延时执行语句 |
go | 启动并发执行 |
map | 定义集合 |
struct | 定义结构体 |
chan | 定义通道 |
else | 判断条件,与if结合使用 |
goto | 跳转语句 |
package | 定义包的名称 |
switch | 选择结构语句,常与case和default结合使用 |
const | 定义常量 |
fallthrough | 在switch语句的case中使用fallthrough,当case匹配成功时,强制执行下一个case语句 |
if | 判断条件,常与else结合使用 |
range | 迭代切片、管道或集合的元素 |
type | 自定义数据类型 |
continue | 跳过本次循环,直接进入下一次循环 |
for | 循环语句 |
import | 导入包 |
return | 设置函数的返回值 |
var | 定义变量 |
注意:
关键字不能作为标识符,否则程序会提示语法错误。
1.2 标识符命名规则
标识符是用户在编程时定义的名字,用于为各种变量、常量、方法、函数等命名。标识符的命名规则如下:
- 由26个英文字母、数字0~9、下划线组成,不能以数字开头。
- Go语言中的标识符严格区分大小写。
- 标识符不能包含空格和特殊字符。
- 不能以关键字作为标识符。
虽然标识符可以任意命名,但在编程时,最好使用便于记忆且有意义的名称,以增加程序的可读性。标识符的命名规则如下:
- 标识符的命名要尽量简短且有意义
- 使用有意义的单词作为标识符
- 如果不能使用一个单词命名标识符,可以使用驼峰命名法或使用下划线"_"连接所有单词
1.3 空白标识符
空白标识符是由下划线"_"表示的特殊标识符,对于不被使用且存在的变量,可以使用空白标识符表示。空白标识符通常用于以下3种场景:
- 导入某个包,不调用包的任何变量或函数,只执行包的初始化函数init()。
- 函数有多个返回值,但只需要使用一个返回值,不使用的返回值使用空白标识符表示。
- 类型断言,判断某个类型是否实现接口,没有实现则报告编译错误。
在函数中使用空白标识符表示不需要使用的返回值,代码如下:
package main
import "fmt"
func myfunc() (string, string, int) {
name := "John"
age := 30
sex := "Male"
return name, sex, age
}
func main() {
name, _, _ := myfunc()
fmt.Printf("Name: %s", name)
}
运行结果为:
D:\01_Code> go run "d:\01_Code\go\test.go"
Name: John
1.4 作用域
作用域表示已声明标识符表示的常量、变量、函数或包在程序中的作用范围。在对一个标识符的引用进行编译时,将从内层到外层查找该标识符的声明,如果没有找到,则报告编译错误。如果内层和外层都存在该标识符的声明,则以内层声明为主,且内层声明会覆盖外层声明。
package main
import "fmt"
var num = 10
func main() {
num := 20
{
num := 30
fmt.Println(num) // Output: 30
}
fmt.Println(num) // Output: 20
}
结果如下:
D:\01_Code> go run "d:\01_Code\go\test.go"
30
20