-
包(Packages)和导入(Imports):
- Go程序是由包组成的,使用
package关键字定义包名。 - 包的作用是组织代码,提供可重用的功能单元。
- 导入其他包使用
import关键字,可以使用相对或绝对路径进行导入。
- Go程序是由包组成的,使用
-
函数(Functions):
- 使用
func关键字定义函数,格式为:func 函数名(参数列表) 返回值列表 { 函数体 }。 - 函数可以有多个返回值,可以通过命名返回值或使用
return语句来返回结果。 - 函数可以作为参数传递给其他函数,也可以作为返回值返回。
- 使用
-
变量(Variables):
- 使用
var关键字声明变量,格式为:var 变量名 类型。 - 可以在声明变量时进行初始化,如:
var 变量名 类型 = 初始值。 - Go语言还提供了简化变量声明的方式:
变量名 := 初始值,自动推导变量类型。 - 变量的作用域可以是全局的或局部的,局部变量只在定义的函数内可见。
- 使用
-
数据类型(Data Types):
- 基本数据类型:bool、int、float、string等。
- 复合数据类型:数组(Array)、切片(Slice)、字典(Map)、结构体(Struct)等。
- 引用类型:指针(Pointer)、切片(Slice)、字典(Map)、通道(Channel)等。
- 数据类型可以有自定义类型,使用
type关键字进行定义。
-
流程控制(Flow Control):
- 条件语句:if、else、switch。
- 循环语句:for、range。
- 跳转语句:break、continue、goto。
-
数组和切片(Array and Slice):
- 数组是固定长度、固定类型的数据结构,使用
[长度]类型声明。 - 切片是可变长度的动态数组,使用
[]类型声明,可以通过make函数创建切片。 - 切片可以通过索引访问元素,使用
append函数动态增加切片长度。
- 数组是固定长度、固定类型的数据结构,使用
-
结构体(Struct):
- 结构体是一种自定义的数据类型,可以包含多个字段(成员变量)。
- 使用
type关键字定义结构体类型,通过.操作符访问结构体字段。 - 结构体可以嵌套定义,形成复杂的数据结构。
-
函数和方法(Functions and Methods):
- 函数是独立的代码块,可以被多次调用。
- 方法是与结构体或类型相关联的函数,使用特定的接收者类型定义。
- 方法可以访问接收者的字段,并对其进行操作。
-
并发(Concurrency):
- Go语言通过
goroutine和channel实现并发编程。 goroutine是轻量级的线程,使用go关键字启动并发执行的函数。channel是用于不同goroutine之间通信的管道,可以进行同步和数据传递。
- Go语言通过
-
错误处理(Error Handling):
- Go语言通过返回错误值来处理异常情况。
- 可以使用
error类型表示错误,使用errors包提供错误处理功能。 - 可以使用
defer关键字延迟执行函数调用,在函数返回前执行清理操作。