![](https://img-blog.csdnimg.cn/20201217200552540.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Go语言
GO语言菜鸟教程学习
落木~
这个作者很懒,什么都没留下…
展开
-
Go小白入门12 - 并发编程
TODODatawhale组队学习文章目录1. 并发与并行2. 为什么需要并发?3. Go并发原语3.1 协程Goroutines3.2 通道Channel1. 并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-vysv5ZD1-1608997001518)(./img/cor.jpg)]并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concur原创 2020-12-26 23:38:25 · 196 阅读 · 0 评论 -
Go小白入门11 - 单元测试
文章目录1. 表格驱动型测试2. 基准测试 - 函数名以Benchmark开头3. 代码4. 参考资料Go标准库中有一个名为testing的测试框架,可进行单元测试,命令是go test xxx测试文件常是以xx_test.go命名,放在同一包下面需求:完成两个复数相加 - 只需一个函数即完成了该任务。如何对该函数进行功能测试,如何快速进行单元测试呢?1. 表格驱动型测试鼠标放在函数上右键,选择GO:Generate Unit Tests For Function可生成xx_test原创 2020-12-25 23:25:31 · 105 阅读 · 0 评论 -
Go小白入门10 - 反射机制
文章目录1. 反射是什么?2. 反射有什么作用?3. 如何实现反射?3.1 反射可将"接口类型变量"转换为"反射类型对象"3.2 反射可将"反射类型对象"转换为"接口类型变量"3.3 若要修改"反射类型对象",其值必须"可写"4. 参考资料1. 反射是什么?反射:程序可以访问、检测和修改它本身状态或行为的一种能力Go语言的反射机制:在运行时更新变量和检查它们的值、调用它们的方法;但在编译时并不知道这些变量的具体类型2. 反射有什么作用?1)编写不定传参类型函数或传入类型过多对象关系映射type原创 2020-12-24 22:17:30 · 113 阅读 · 0 评论 -
Go小白入门9 - 异常处理
文章目录1. 反射是什么2. 反射的作用3. 反射的实现3.1 反射三定律4. 反射的实践1. 反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。2. 反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct { gorm.Mode原创 2020-12-23 23:44:19 · 72 阅读 · 0 评论 -
Go小白入门8 - 包管理
文章目录1. error2. panic3. 源码分析1. errorGo语言内置了一个简单的错误接口作为一种错误处理机制,接口定义如下:type error interface { Error() string}它包含一个 Error() 方法,返回值为stringGo的error构造有两种方式,分别是第一种:errors.New()err := errors.New("This is an error")if err != nil { fmt.Print(err)}第二种原创 2020-12-22 23:51:13 · 78 阅读 · 0 评论 -
Go小白入门7 - 结构体、方法 & 接口
文章目录1. 结构体1.1 结构体定义1.2 操作结构体1.3 标签1.4 内嵌结构体2. 方法2.1 方法定义2.2 方法接收者3. 接口3.1 接口定义3.2 实现接口3.3 类型断言3.4 空接口1. 结构体Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。1.1 结构体定义结构体一般定义如下:type identifier struct { field1 ty原创 2020-12-21 23:42:24 · 102 阅读 · 0 评论 -
Go小白入门6 - 函数
文章目录1. 函数的定义3. 参考资料Go 语言最少有个 main() 函数1. 函数的定义func function_name([parameter list]) [return _types]{ // 函数体}简单的小栗子 - max()函数package mainimport "fmt"func main() { fmt.Println(max(2, 3))}func max(num1, num2 int) int { if num1 > num2 {原创 2020-12-20 23:39:09 · 125 阅读 · 0 评论 -
Go小白入门5 - 数组 & 切片
周日再补两天作业和SQL原创 2020-12-19 21:07:11 · 130 阅读 · 1 评论 -
Go小白入门4 - 字符串 & 字典
文章目录1. 字符串1.1 字符串的长度1.2 如何改变字符串的内容?1.3 常用的函数1)strings包2)strconv包1.4 字符串的拼接2. 字典2.1 常见操作(赋值、判断值是否存在、遍历、删除值)2.2 排序2.3 将函数作为值类型存入字典3. 参考资料1. 字符串Go语言的%d,%p,%v等占位符1.1 字符串的长度Go的字符串是 UTF-8 字符的一个序列(ASCII 码表字符 - 占用 1 字节;其它字符 - 占 2~4 字节)=> 字节长度的不定性len常规长原创 2020-12-18 21:59:06 · 283 阅读 · 2 评论 -
Go小白入门3 - 运算符 & 控制语句
文章目录1. 运算符1.1 基本运算符1.2 指针相关的运算符2 条件语句2.1 基本条件语句2.2 switch 语句1)举个栗子2)Type Switch3)fallthrough2.3 Select 语句3 循环语句4. 小练习4.1 运算符4.2 条件语句3.3 循环语句4. 参考资料1. 运算符1.1 基本运算符算术运算符 加减乘除自增,自减只能作为表达式使用,而不能用于赋值语句// 不允许 - 会有编译错误 syntax error: unexpected ++ at end o原创 2020-12-17 20:03:45 · 3362 阅读 · 0 评论 -
Go小白入门2 - 变量、常量 & 枚举
文章目录1. 变量1.1 变量的声明1.2 多个变量的声明1.3 初始化声明`:=`1.4 注意点2. 常量2.1 举个栗子2.2 常量中的特殊函数3. 枚举3.1 const普通枚举3.2 iota自增枚举4. 小练习4.1 变量的声明4.2 空白标识符4.3 iota自增枚举 ☆5. 参考资料1. 变量变量名由字母、数字、下划线组成,注意首字符不能为数字1.1 变量的声明1)若没有初始化值,则默认为空/零值var a int // 0var b string // ""va原创 2020-12-16 21:16:54 · 116 阅读 · 0 评论 -
Go小白入门1 - 数据类型、关键字和标识符
文章目录1. 数据类型1.1 布尔型1.2 数字类型1)整型2)浮点型3)复数4)位的运算1.3 字符串类型1.4 派生类型1.5 其他数据类型2. 关键字3. 标识符4. 参考资料1. 数据类型1.1 布尔型 var b bool = true1.2 数字类型1)整型uint8 - 无符号 8 位整型 (0 到 255)uint16 - 无符号 16 位整型 (0 到 65535)uint32 - 无符号 32 位整型 (0 到 4294967295)uint64 - 无符号 64原创 2020-12-15 23:45:39 · 152 阅读 · 0 评论 -
Go小白入门0 - 初识Go
文章目录1. Why Go & Go的用途?2. Go的安装Step1 - 安装包Step2 - 配置环境变量Step3 - IDE选择Step4 - VSCode安装Go的相关插件3. 第一个Go程序4. Go的语言特性5. Go的语法结构6. 参考资料1. Why Go & Go的用途?Go是Google开源的系统级编译语言性能高,堪比 Java / C++,比 Python 快 ~30 倍运行效率高,且代码复杂度低可直接编译成机器码,不依赖其他库多核并行编程,面向多CP原创 2020-12-14 22:12:36 · 223 阅读 · 1 评论