# 关键字
Go共有25个保留关键字
# 包管理(2个):
# import
用于导入包,这样就可以使用包中被导出的标识符。导入格式如下:
|
|
# package
用于声明包的名称,需放在go文件所有代码的最前面。一个包由一个或多个go源文件组成,需放在同一个目录下,且同一个目录下的这些go文件的package的名字只能有一个,且不能为"_"。
package <packagename>
# 程序实体声明与定义(8个):
# chan
用于声明channel
(信道)。信道提供一种机制使两个并发执行的函数实现同步,并通过传递具体元素类型的值来通信。
|
|
# const
用于定义常量,一旦创建,不可赋值修改
# func
func 用于定义函数。Go函数支持可变参数且返回值支持多个,但不支持默认参数。如果函数存在多个返回值形参则需要使用小括号括起来,定义格式如下:
|
|
# interface
interface 用于定义接口。一个接口是一个方法集,如果一个类型实现了一个接口中的所有方法集,那么说明该类型实现此接口。接口类型变量可以存储任何实现了该接口的类型的值。特别的,interface{}表示空接口类型,默认地,所有类型均实现了空接口,所以interface{}可以接收任意类型值。
# map
map 用于声明映射变量。映射属容器类类型,是一个同种类型元素的无序组,通过唯一的键可以获取对应的值。可以使用 make 创建 map 变量,在定义 map 时可以省略容量,超出容量时会自动扩容,但尽量提供一个合理的初始值。未初始化的值为 nil。
# struct
struct 用于定义结构体。结构体属容器类型,是多个相同或不同类型值的集合 。一个结构体的零值是类型集合中所有类型的零值。
# type
type 用于定义类型,比如定义 struct、interface、func 与等价类型。
# var
var 用于申明函数级变量和包级变量。
# 程序流程控制(15个):
# 循环
for 是 Go 中唯一用于循环结构的关键词, 有三种使用方式:1. 单条件 2. 循环变量 3 range
|
|
break
continue
|
|
# 条件语句
if
else
else if
|
|
-
switch
default
case
1 2 3 4 5 6 7 8
switch i { case 1: fmt.Println("i == 1") case 2: fmt.Println("i == 2") default: fmt.Println("i != 1 && i != 2") }
# 跳转控制
return
Go中一个函数可以有一个或者多个返回值,返回值通过return指定。
- return关键字中指定了参数时,返回值可以不用名称。如果return省略参数,则返回值部分必须带名称,当返回值带有名称时,必须使用
()
包起来 - 在一个函数块里,任何在return之后的代码都不会执行
defer
goto
# 并发控制
go
select