![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
go
基基肌
彩虹男孩
展开
-
go语言并发编程
并发编程1 并发与并行Erlang 之父 Joe Armstrong曾经以下图解释并发与并行。并发在图中的解释是两队人排队接咖啡,两队切换。并行是两个咖啡机,两队人同时接咖啡。“Concurrency is about dealing with lots of things at once. Parallelism is about doing lots of things at once.” — Rob Pike并发使并行变得容易,并发提供了一种构造解决方案的方法,并行一般伴随这多核。并发一般原创 2020-12-26 20:56:06 · 132 阅读 · 0 评论 -
Go语言 单元测试
单元测试在日常开发中,我们通常需要针对现有的功能进行单元测试,以验证开发的正确性。 在go标准库中有一个叫做testing的测试框架,可以进行单元测试,命令是go test xxx。测试文件通常是以xx_test.go命名,放在同一包下面。1 初探Go单元测试现在假设现在需求是:完成两个复数相加,我们只需要一个函数便可以完成该任务。在开发中,我们需要对该函数进行功能测试,如何快速进行单元测试呢?鼠标放在函数上右键,选择GO:Generate Unit Tests For Function即可生成原创 2020-12-25 11:10:18 · 240 阅读 · 0 评论 -
go语言 反射机制
go语言 反射机制1 反射是什么1. 反射定律反射可以将“接口类型变量”转换为“反射类型对象”。反射可以将“反射类型对象”转换为“接口类型变量”。如果要修改“反射类型对象”,其值必须是“可写的”。反射的概念是由Smith在1982年首次提出的,主要是指程序可以访问、检测和修改它本身状态或行为的一种能力。Go 语言提供了一种机制在运行时更新变量和检查它们的值、调用它们的方法,但是在编译时并不知道这些变量的具体类型,这称为反射机制。10.2 反射的作用1.在编写不定传参类型函数的时候,或传入类原创 2020-12-24 09:43:11 · 119 阅读 · 0 评论 -
go语言 异常处理
异常处理Go语言追求简洁优雅,所以,Go语言不支持传统的 try…catch…finally 这种异常,因为Go语言的设计者们认为,将异常与控制结构混在一起会很容易使得代码变得混乱。因为开发者很容易滥用异常,甚至一个小小的错误都抛出一个异常。在Go语言中,使用多值返回来返回错误。不要用异常代替错误,更不要用来控制流程。在极个别的情况下,也就是说,遇到真正的异常的情况下(比如除数为0了)。才使用Go中引入的Exception处理:defer, panic, recover。1 errorGo语言内置了一原创 2020-12-23 19:40:51 · 522 阅读 · 0 评论 -
Go语言 包管理
包管理1 Go Modules是什么?Go语言通过包管理来封装模块和复用代码,这里我们只介绍Go Modules管理方法Go Modules于Go语言1.11版本时引入,在1.12版本正式支持,是由Go语言官方提供的包管理解决方案Modules是相关Go包的集合,是源代码交换和版本控制的单元。go命令直接支持使用Modules,包括记录和解析对其他模块的依赖性2 Go Modules的使用方法2.1 环境变量首先需要设置环境变量,可以使用go env命令查看当前配置。$ go envGO1原创 2020-12-22 18:39:31 · 107 阅读 · 0 评论 -
Go语言 结构体、方法、接口
1.结构体Go 语言中没有“类”的概念,也不支持像继承这种面向对象的概念。但是Go 语言的结构体与“类”都是复合结构体,而且Go 语言中结构体的组合方式比面向对象具有更高的扩展性和灵活性。1.1 结构体定义结构体一般定义如下:type identifier struct { field1 type1 field2 type2 ...}例如我们想声明一个学生的结构体类型:type Student struct { Name string Age int}结构体中字段的类型原创 2020-12-21 10:59:16 · 128 阅读 · 0 评论 -
GO语言 函数
函数 Golang语言函数1 函数定义在go语言中函数定义格式如下:func functionName([parameter list]) [returnTypes]{ //body}函数由func关键字进行声明。functionName:代表函数名。parameter list:代表参数列表,函数的参数是可选的,可以包含参数也可以不包含参数。returnTypes:返回值类型,返回值是可选的,可以有返回值,也可以没有返回值。body:用于写函数的具体逻辑函数的定义函数构成原创 2020-12-20 09:16:41 · 306 阅读 · 1 评论 -
go语言 数组、切片
数组、切片数组的定义var 数组名 [数组大小]数据类型var a [5]int赋初值 a[0] = 1 a[1] = 30 ....数组在内存布局(重要)对上的总结:数组的地址可以通过数组名来获取 &intArr数组的第一个元素的地址,就是数组的首地址数组的各个元素的地址间隔是依据数组的类型决定,比如int64 -> 8 int32->4…数组的使用访问数组元素数组名[下标] 比如:你要使用 a 数组的第三个元素 a[2]二维数组快速入门快速入门原创 2020-12-19 09:50:22 · 123 阅读 · 1 评论 -
字典、字符串
字典、字符串参考文章,请点击此处1 字典map是一种较为特殊的数据结构,在任何一种编程语言中都可以看见他的身影,它是一种键值对结构,通过给定的key可以快速获得对应的value。go 语言中的字典和python 中的字典特性差不多相同: 键值对, 无序集合, 每个键都是唯一的, 对一个键多次赋值会更新当前键的值;不同: go语言的字典里面的类型是定好的, 不可变更, python可以随意写类型.map初始化与内存分配首先,必须给map分配内存空间之后,才可以往map中添加元素:func原创 2020-12-18 09:35:11 · 206 阅读 · 0 评论 -
运算符、控制语句
运算符、控制语句1 运算符假定 A 值为 10,B 值为 20。1.1 算数运算符1.2 关系运算符1.3 逻辑运算符1.4 位运算符,假定 A 为60,B 为131.5 赋值运算符1.6 其他运算符1.7 优先级详见:https://blog.csdn.net/qq_34307082/article/details/100155048?ops_request_misc=%25257B%252522request%25255Fid%252522%25253A%2525221原创 2020-12-17 20:44:00 · 79 阅读 · 0 评论 -
Task03: 变量、常量、枚举(1天) 组队学习 Go编程语言
变量 、常量、枚举变量变量,计算机语言能存储计算结果或表示值的抽象概念。可以通过变量名访问,变量名由字母、数字、下划线组成,其中首个字符不能为数字。声明变量的一般形式是使用 var 关键字:var identifier typevar identifier1, identifier2 typeGO语言的变量声明方式与C和C++语言有明显的不同。对于纯粹的变量声明,GO语言引入了关键字var,而类型信息放在变量名之后,示例如下:var v1 int //整型 var v2 stirng /原创 2020-12-16 10:05:03 · 98 阅读 · 0 评论 -
Task02: 数据类型、关键字、标识符(1天)
Task02: 数据类型、关键字、标识符基础知识变量声明变量声明一般使用var 关键字var a int = 100 //值为100的整型变量avar b bool = true; //值为真的布尔变量 bvar c string = "hello word" //值为hello word的字符串cvar arr [5]int //声明了长度为5的整型数组:= 声明初始化操作符需要注意的是 :=操作符只能用于声明局部变量,不能用于声明全局变量,也就是只能用于函数内部使用,不能用户全局。原创 2020-12-14 20:07:22 · 113 阅读 · 0 评论 -
MACOS操作系统下 GO语言环境安装
MACOS操作系统下 GO语言环境安装第一天 MACOS操作系统下 GO语言环境安装先在MacOS上安装好VS code参考地址:https://blog.csdn.net/tang_yu_mac/article/details/104351404?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522160794571916780304674385%2522%252C%2522scm%2522%253A%252220140713.130102原创 2020-12-14 19:38:34 · 107 阅读 · 0 评论