go 基础知识

go 指针

指针变量指向一个值的内存地址:不是所有值都有地址,但是所有变量都有地址 每一个聚合类型变量的组成(结构体的成员或数组中的元素)都是变量,都有一

go 接口

非侵入式设计 接口定义 接口实现 接口值 底层值为 nil 的接口值 接口值为 nil 空接口 类型断言(type assertion) 类型选择(type switch) 接口和类型的关系 一个类型可以实现

go 散列表

map定义和初始化 map 是一种无序的键值对的集合,可以通过 key 快速检索数据,使用 hash 表实现 定义集合 var map_name[key_type]val_type 使用 make 函数map_name := make(map[key_type]val_type) 不初始化 map,

go 数据类型

数据类型 数据类型默认初始化值 类型推导 数据类型 数据类型把数据分成所需内存大小不同的数据 布尔型:true 或 false 数字类型: 整型 有符号 int(int, int8, int16, int32, int6

go 数组

array 数组初始化 多维数组 数组作为函数参数 array 数组是具有相同类型,长度固定,已编号的数据项序列 可通过索引来读写数组元素 声明数组需要指定类型和元素个数

go 方法

方法 method 方法的接收者是 struct 方法的接收者是非结构体 指针接收者 vs 值接收者 使用指针接收者 使用值接收者 方法的匿名域 方法 method 方法的接收者是 struct go 没有类,但是可

go 条件语句

if if 语句 if…else 语句 if 嵌套语句 switch select if if 语句 类似于 for 循环,但是不需要小括号,需要大括号 if x < 0 { return 0 } if 语句可以在执行条件语句之前有一个简短的语句,

go 模块

1 快速入门 1.1 新建工程 1.2 每日工作流 2 新概念 2.1 module 模块 2.2 go.mod 2.3 版本选择 2.4 语义导入版本控制 3 如何使用模块 3.1 如何安装和激活模块支持 3.2 定义一个模块 3.3 升级和

go 程

goroutine 创建一个 goroutine goroutine 优于线程 goroutine goroutine 是和其他函数或方法并发运行的函数或方法 goroutine 可认为是轻量级的线程,比线程创建代价小 创建一个 goroutine 使用 go 可以开始一个 goro

go 类型转换

类型声明 type 声明定义一个新的命名类型,它和某个已有类型使用同样的底层类型。命名;类型提供了一种方式来区分底层类型的不同或不兼容使用,这样就不会