go入门学习
隧隧道道
这个作者很懒,什么都没留下…
展开
-
12.并发编程
12.并发编程12.1 并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-aFfHNGST-1608710979689)(./img/cor.jpg)]并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concurrency is about dealing with lots of things at once. Parallelism is abou原创 2020-12-23 16:10:00 · 83 阅读 · 0 评论 -
11.单元测试
11.单元测试本节代码样例见code/utest文件夹在日常开发中,我们通常需要针对现有的功能进行单元测试,以验证开发的正确性。在go标准库中有一个叫做testing的测试框架,可以进行单元测试,命令是go test xxx。测试文件通常是以xx_test.go命名,放在同一包下面。11.1 初探Go单元测试现在假设现在需求是:完成两个复数相加,我们只需要一个函数便可以完成该任务。在开发中,我们需要对该函数进行功能测试,如何快速进行单元测试呢?鼠标放在函数上右键,选择GO:Generat原创 2020-12-23 16:09:29 · 115 阅读 · 0 评论 -
10.反射机制
10.反射机制10.1 反射是什么反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。10.2 反射的作用1.在编写不定传参类型函数的时候,或传入类型过多时典型应用是对象关系映射type User struct { gorm.Model Name string Age原创 2020-12-23 16:07:03 · 100 阅读 · 0 评论 -
9.异常处理
9.异常处理9.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)}第二种:fmt.Errorf()err :=原创 2020-12-23 16:06:21 · 104 阅读 · 0 评论 -
8.包管理
8.包管理8.1 Go Modules是什么?Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性8.2 Go Modules的使用方法8.2.1 环境变量首先需要设置环境变量,可以使用go env命令查看当前配置。$ go原创 2020-12-22 23:25:07 · 147 阅读 · 0 评论 -
7.结构体、方法、接口
7.结构体、方法、接口7.1.结构体7.1.1 结构体定义7.1.2 操作结构体7.1.3 标签7.1.4 内嵌结构体7.2 方法7.2.1 方法定义7.2.2 方法接收者7.3 接口7.3.1 接口定义7.3.2 实现接口7.3.3 类型断言7.3.4 空接口7.1.结构体Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。7.1.1 结构体定义结构体一般定义如下:typ原创 2020-12-17 20:45:39 · 133 阅读 · 0 评论 -
go入门学习-6. 函数
6.函数6.1 函数定义6.2 值传递与引用传递6.3 变长参数6.4 多返回值6.5 命名返回值6.6 匿名函数6.7 闭包6.1 函数定义在go语言中函数定义格式如下:func functionName([parameter list]) [returnTypes]{ //body}函数由func关键字进行声明。functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,原创 2020-12-16 23:28:21 · 100 阅读 · 0 评论 -
go入门学习- 5. 数组、切片
5. 数组、切片5.1 数组5.1.1 如何定义数组5.1.2 如何操作数据5.1.3 多维数组5.1.4 数组作为函数参数5.1.5 指针数组与数组指针5.2.切片5.2.1 如何定义切片5.2.2 切片的扩充与拼接5.2.3 切片与数组的关系5.1 数组5.1.1 如何定义数组数组是具有相同类型且长度固定的一组连续数据。在go语言中我们可以使用如下几种方式来定义数组。//方式一var arr1 = [5]int{}//方式二var arr2 = [5]int{1,2,3,4,5}//方式原创 2020-12-16 16:35:19 · 107 阅读 · 0 评论 -
go入门学习-4. 字典、字符串
4.字典、字符串4.1 字典4.1.1 如何定义字典4.1.2 字典操作1. 增2. 查3. 删4. 删4.2 字符串4.2.1 字符串定义4.2.2 strings包4.2.3 strconv包4.2.4 字符串拼接4.1 字典map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。4.1.1 如何定义字典//1var m1 map[string]int//2m2 := make(map[int]interfa原创 2020-12-14 20:15:27 · 121 阅读 · 0 评论 -
go入门学习-3. 运算符、控制语句(条件语句、循环语句)
3.运算符、控制语句(条件语句、循环语句)3.1 运算符3.1.1 算数运算符3.1.2 关系运算符3.1.3 逻辑运算符3.1.4 位运算符,假定 A 为60,B 为133.1.5 赋值运算符3.1.6 其他运算符3.1.7 优先级3.2 控制语句3.2.1 条件语句3.2.1.1 if语句3.2.1.2 switch语句3.2.1.3 select语句3.2.3 循环语句3.2.3.1 for循环3.2.3.2 循环嵌套3.2.3.3 循环控制语句1. break2. continue3. goto3原创 2020-12-14 17:43:19 · 158 阅读 · 0 评论 -
go入门学习-2. 变量、常量、枚举
go入门学习-2.变量、常量、枚举2.变量 、常量、枚举2.1 变量变量声明方式2.2 常量2.3枚举2.3.1 普通枚举2.3.2 自增枚举2.4参考2.变量 、常量、枚举2.1 变量变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier typevar identifier1, identifier2 type变量声明方式指定变量类型,若没有原创 2020-12-14 15:55:13 · 210 阅读 · 0 评论 -
go入门学习-1. 数据类型、关键字、标识符
go入门学习-数据类型、关键字、标识符数据类型基本数据类型高级数据类型关键字25个关键字或保留字36 个预定义标识符知识点标识符数据类型基本数据类型布尔类型(bool)数值类型整数类型(byte,rune,int/uint,int8/uint8,int16/uint16,int32/uint32,int64/uint64)浮点类型(float32,float64)复数类型(complex64,complex128)字符串类型string Go的字符串是由单个字节连接起来的。使用UTF-原创 2020-12-14 15:36:25 · 116 阅读 · 0 评论 -
go入门学习-0.环境配置以及简单helloGo实现
环境配置以及简单helloGo实现Go环境配置Go语言特性语言结构go项目目录结构运行方式推荐 go mod 使用mod基本操作0.4 参考Go环境配置1.IDE选择IDE需知:vscode与goland,推荐使用vscode,vscode免费,goland收费(学生可以使用教育邮箱注册白嫖)。vscode地址:https://code.visualstudio.com/goland地址:https://blog.jetbrains.com/go/2.go安装包下载地址:https://stu原创 2020-12-14 14:42:29 · 273 阅读 · 0 评论