标签: Golang

使用Golang实现在屏幕上打印进度条的操作

GoSimplePrint是一款用go写的开源简单进度条打印包。我可以利用它,在自己项目中需要加入进度条功能。1、安装goget-ugithub.com/redmask-hb/GoSimplePrint/goPrint2、初始化bar:=goPrint.NewBar(20)这里的20,是我们满进度条...

Golang 2021-03-25 28 0 0 阅读全文

Go等待一组协程结束的操作方式

go提供了sync包和channel来解决协程同步和通讯。方式1:sync.WaitGroup是等待一组协程结束,sync.WaitGroup只有3个方法,Add()添加一个计数,Done()减去一个计数,Wait()阻塞直到所有任务完成。packagemainimport("fmt&qu...

Golang 2021-05-06 56 0 0 阅读全文

深度解密Go语言之Slice

Go语言的slice很好用,不过也有一些坑。slice是Go语言一个很重要的数据结构。网上已经有很多文章写过了,似乎没必要再写。但是每个人看问题的视角不同,写出来的东西自然也不一样。我这篇会从更底层的汇编语言去解读它。而且在我写这篇文章的过程中,发现绝大部分文章都存在一些问题,文章里会讲到,这里先不...

Golang 2021-07-02 25 0 0 阅读全文

使用 Go 管理版本的方法示例

简介如果你曾经运行过dockerversion,就会发现它提供了很多信息:PSC:\Users\tzh>dockerversionClient:DockerEngine-CommunityVersion:19.03.4APIversion:1.40Goversion:go1.12.10Gitc...

Golang 2021-05-07 22 0 0 阅读全文

Golang遍历时修改被遍历对象的示例详解

很多时候需要将遍历对象中去掉某些元素,或者往遍历对象中添加元素,这时候就需要小心操作了。对于go语言中的一些注意事项我做了总结和示例,留下点笔记。遍历切片1.遍历切片时去掉元素,错误示例:funcmain(){arr:=[]int{1,2,3,4}fori:=rangearr{ifarr[i]==3...

Golang 2021-03-30 53 0 0 阅读全文

GO实现协程池管理的方法

使用channel实现协程池通过Channel实现GoroutinePool,缺点是会造成协程的频繁开辟和注销,但好在简单灵活通用。packagemainimport("fmt""io/ioutil""net/http""sync...

Golang 2021-07-14 20 0 0 阅读全文

使用Go实现常见的数据结构

1golang常见数据结构实现1.1链表举单链表的例子,双向链表同理只是多了pre指针。定义单链表结构:typeLinkNodestruct{Dataint64NextNode*LinkNode}构造链表及打印链表:funcmain(){node:=new(LinkNode)node.Data=1n...

Golang 2021-03-25 23 0 0 阅读全文

Golang协程池模拟实现群发邮件功能

比如批量群发邮件的功能因为发送邮件是个比较耗时的操作,如果是传统的一个个执行,总体耗时比较长可以使用golang实现一个协程池,并行发送邮件pool包下的pool.go文件packagepoolimport"log"//具体任务,可以传参可以自定义操作typeTaskstruct...

Golang 2021-05-06 29 0 0 阅读全文

Golang实现AES对称加密的过程详解

AES对称加密简介AES是一个对称密码,旨在取代DES成为广泛使用的标准。是美国联邦政府采用的一种区块加密标准。AES对称加密过程加密解密算法的输入是一个128位分组。这些分组被描述成4×4的字节方阵,这个分组被复制到数组中,并在加密和解密的每一阶段都被修改。在字节方阵中,每一格都是一个字,包含了4...

Golang 2021-05-21 36 0 0 阅读全文

部署Go语言项目的 N 种方法(小结)

本文以部署GoWeb程序为例,介绍了在CentOS7服务器上部署Go语言程序的若干方法。部署Go语言项目本文以部署GoWeb程序为例,介绍了在CentOS7服务器上部署Go语言程序的若干方法。独立部署Go语言支持跨平台交叉编译,也就是说我们可以在Windows或Mac平台下编写代码,并且将代码编译成...

Golang 2021-04-12 21 0 0 阅读全文

Golang 切片截取参数方法详解

以s:=[]int{0,1,2,3,4,5,6,7,8,9}为例0.建议:做slice截取时建议用两个参数,尤其是从底层数组进行切片操作时,因为这样在进行第一次append操作时,会给切片重新分配空间,这样减少切片对数组的影响。1.结论:s=s[low:high:max]切片的三个参数的切片截取的意...

Golang 2021-03-30 29 0 0 阅读全文

Go实现冒泡排序的示例代码

冒泡排序:(BubbleSorting)基本思想是通过对待排序序列从后向前(从下标较大的元素开始)以此比较相邻元素的排序码,若发现逆序则交换,使排序码较小的元素逐渐从后补移向前部(从下标较大的单元移向单位较小的单元),就像水底的气泡一样逐渐向上冒。因为排序的过程中,各元素不断的接近自己的位置,如果一...

Golang 2021-03-30 28 0 0 阅读全文

Golang实践-第三方包为私有库的配置方案

正常使用了go1.8一段时间没有发现异常,为了发布便捷,以及后期引入plug-in,开始将大项目分解。涉及到通过vendor引入私有库保存的第三方包。参考网上那些反复转帖的材料,始终无法成功,总是都会出现类似以下的错误:packagegit.oschina.net/xxx/yyy:unrecogni...

Golang 2021-05-06 111 0 0 阅读全文

Golang修改结构体中的切片值方法

golang修改结构体中的切片值,直接传结构体地址就可以packagemainimport"fmt"typerspInfostruct{KeyWordsstring`json:"key_words"`Value[]string`json:"value...

Golang 2021-03-30 33 0 0 阅读全文

Golang空结构体Struct{}用途,你知道吗

golang空结构体struct{}可以用来节省内存a:=struct{}{}println(unsafe.Sizeof(a))//Output:0理由如下:如果使用的是map,而且map又很长,通常会节省不少资源空struct{}也在向别人表明,这里并不需要一个值本例说明在map里节省资源的用途:...

Golang 2021-03-30 79 0 0 阅读全文

如何使用Docker部署Go Web应用的实现

本文介绍了如何使用Docker以及DockerCompose部署我们的GoWeb程序。为什么需要Docker?使用docker的主要目标是容器化。也就是为你的应用程序提供一致的环境,而不依赖于它运行的主机。想象一下你是否也会遇到下面这个场景,你在本地开发了你的应用程序,它很可能有很多的依赖环境或包,...

Docker 2021-04-12 23 0 0 阅读全文

详解Golang Iris框架的基本使用

Iris介绍编写一次并在任何地方以最小的机器功率运行,如Android、ios、Linux和Windows等。它支持GoogleGo,只需一个可执行的服务即可在所有平台。Iris以简单而强大的api而闻名。除了Iris为您提供的低级访问权限。Iris同样擅长MVC。它是唯一一个拥有MVC架构模式丰富...

Golang 2021-04-12 44 0 0 阅读全文

Mac下安装Golang框架Iris的方法

安装前准备:设置GOPROXY代理参考:https://goproxy.cn我使用的是下面的两条命令:$goenv-wGO111MODULE=on$goenv-wGOPROXY=https://goproxy.cn,direct我的goenv信息:%goenvGO111MODULE="on...

Golang 2021-04-12 23 0 0 阅读全文

解决Go Mod私有仓库拉取的问题

用gomod的时候应该会遇到无法拉取私有仓库的问题从你gitlab平台生成一个token,在~/.gitcoinfig中[http]下增加extraheader=PRIVATE-TOKEN:你的token[url]下增加insteadOf=https://gitlab.你的gitlab服务器.com...

Golang 2021-05-06 198 0 0 阅读全文

Golang实现Pipeline模式的Redis客户端

通常TCP客户端的通信模式都是阻塞式的:客户端发送请求->等待服务端响应->发送下一个请求。因为需要等待网络传输数据,完成一次请求循环需要等待较多时间。我们能否不等待服务端响应直接发送下一条请求呢?答案是肯定的。TCP作为全双工协议可以同时进行上行和下行通信,不必担心客户端和服务端同时发...

Golang 2021-07-12 22 0 0 阅读全文