1、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

2、Go语言标识符

标识符组成:数字,字母,下划线
注意事项:不能以数字开头,严格区分大小写,不能包含空格,不能使用Go语言中的保留关键字。

2.1 常量相关的预定义标识符(4个)

true false iota nil

2.2 类型相关的预定义标识符(20个)

int int8 int16 int32 int64
uint uint8 uint16 uint32 uint64
uintptr float32 float64 complex128 complex64
bool byte rune string error

2.3 函数相关的预定义标识符(13个)

make len cap new append
copy close delete complex real
imag panic recover

3、变量

3.1 变量声明

一般使用var关键字进行声明,形式如下:

  1. var name type

其中,var是声明变量的关键字,name是变量名,type是变量的类型。变量声明的3种格式如下:

标准变量声明格式

var 变量名 变量类型

多变量声明格式

使用关键字var和括号将一组变量定义放在一起,示例如下:

  1. var (
  2. name string
  3. age int
  4. salary float64
  5. )

短变量声明格式(推荐)

使用:=声明变量,格式如下:变量名 := 表达式,示例如下:

  1. age := 18
  2. height := 1.75

短变量声明注意事项:

(1)只能用来定义变量,且必须同时进行初始化
(2)不能提供数据类型
(3)只能用在函数内部(不能用来声明全局变量

3.2 变量赋值

单个变量赋值

形式:var name (type) = value,示例如下:

  1. var name string = "victor"
  2. var age = 18

多个变量赋值

方式一:

  1. var (
  2. name = "victor"
  3. age = 18
  4. height = 1.75
  5. )

方式二:

  1. var name, age, height = "victor", 18, 1.75

方式三:

  1. name, age, height := "victor", 18, 1.75

3.3 变量的作用域

(1)局部变量
在函数体内声明的变量为局部变量。作用范围只在函数体内。
(2)全局变量
在函数体外声明的变量为全局变量。全局变量可以在整个包甚至外部包(被导出后)使用,也可以在任何函数中使用。

4、数据类型

Go语言的数据类型包括以下:
Go语言基础语法 - 图1

4.1 基本数据类型

整数类型

int uint int8 uint8
int16 uint16 int32 uint32
int64 uint64 byte

浮点类型

float32 float64

字符型

byte

布尔型

bool

字符串

string

4.2 复杂数据类型

指针、数组、切片、map、结构体、接口、管道、函数

5、常量&字面常量

5.1 常量声明

使用const关键字进行常量声明,格式如下:const 常量名 [常量类型] = 常量值,如:

  1. const pi = 3.1415926 // 编译器推导其类型
  2. const e float64 = 2.718281828 // 显示指定类型

常量的值必须是能够在编译时就能够确定的,可以在其赋值表达式中涉及计算过程,但是所有用于计算的值必须在编译期间就能获得。

5.2 常量生成器-iota

常量声明可以使用iota常量生成器初始化,它用于生成一组以相似规则初始化的常量,但是不用每行都写一遍初始化表达式。
iota只能在常量表达式中使用。
注意:在一个const声明语句中,在第一个声明的常量所在的行,iota将会被置为0,然后在每一个有常量声明的行加一。示例如下:

  1. // 每次 const 出现时, 都会让 iota 初始化为 0 【自增长】
  2. const (
  3. a = iota // a = 0
  4. b // b = 1
  5. c // c = 2
  6. )
  7. // const iota 使用 _ 跳过某些值
  8. const (
  9. n1 = iota // 0
  10. n2 // 1
  11. _
  12. n4 // 3
  13. )
  14. // iota 声明中间插队
  15. const (
  16. n1 = iota // 0
  17. n2 = 100 // 100
  18. n3 = iota // 2
  19. n4 // 3
  20. )
  21. const n5 = iota // 0
  22. // 多个 iota 定义在一行
  23. const (
  24. a, b = iota + 1, iota + 2 // 1, 2
  25. c, d // 2, 3
  26. e, f // 3, 4
  27. )

5.3 字面常量

字面常量(literal)是指程序中硬编码的常量,如:

  1. 123 // 整数类型常量
  2. 3.1415926 // 浮点数类型常量
  3. 3.2+12i // 复数类型常量
  4. true // 布尔类型常量
  5. "foo" // 字符串类型常量

6、运算符

7、流程控制