标签: Golang

Go Web处理表单的输入的说明

一目录结构二前端页面文件名:login.html用户名:密码:上面递交表单到服务器的/login,当用户输入信息点击登陆之后,会跳转到服务器的路由login里面。三后端处理packagemainimport("fmt""html/template""...

Golang 2021-06-09 165 0 0 阅读全文

使用Golang编写一个并发工作队列

其实golang用一个函数可以构建一个并发队列,现在编写一个灵活可控的队列程序先定义一个工作typeWorkerstruct{IDintRepJobschanint64SM*SMquitchanbool}包含了workid和执行任务的id,上面的SM只是任务具体内容,这个和具体业务相关,大家自己编写...

Golang 2021-05-08 167 0 0 阅读全文

Golang 实现对Map进行键值自定义排序

看代码吧~//自定义结构体,用来自定义排序typeRecentlyUpdateListMapSorter[]map[string]interface{}//根据MapSorter.Keys进行倒序排序func(ms*RecentlyUpdateListMapSorter)SortReverse(){...

Golang 2021-04-29 224 0 0 阅读全文

Golang 对私有函数进行单元测试的实例

在待测试的私有函数所在的包内,新建一个xx_test.go文件书写方式如下:import("github.com/stretchr/testify/assert""testing")varXXFunc=yourPrivateFuncfuncTestXXFunc...

Golang 2021-05-08 187 0 0 阅读全文

GoLang函数与面向接口编程全面分析讲解

一、函数1.函数的基本形式//函数定义:a,b是形参funcadd(aint,bint){a=a+b}varx,yint=3,6add(x,y)//函数调用:x,y是实参形参是函数内部的局部变量,实参的值会拷贝给形参函数定义时的第一个的大括号不能另起一行形参可以有0个或多个,支持使用可边长参数参数类...

Golang 2023-01-28 25 0 0 阅读全文

Goland支持泛型了(上机实操)

事情出因一大早上被一篇公众号的推文震惊了,Goland竟然支持go的泛型了。据我所知:Go的泛型不是还在设计草图吗?最乐观估计也要2021年8月份。你说Go语言现在都没开发好泛型,你支持这个特性有什么用呢?带着好奇心点开推文,没发现对泛型的说明,只看到一个Goland对泛型的使用的说明链接:http...

Golang 2021-04-07 261 0 0 阅读全文

GoLand 2020.3 正式发布有不少新功能(支持泛型)

这是2020年第3个版本,也是最后一个版本。在GoLand2020.3中,您可以探索goroutinesdumps,运行并导航到单个表测试(tabletests),并从对Testify测试框架的扩展支持中获得更多信息。你还将发现许多新的代码编辑功能,包括对time包的支持,更智能的处理包方法,UI改...

Golang 2021-04-07 196 0 0 阅读全文

Go语言死锁与Goroutine泄露问题的解决

什么时候会导致死锁在计算机组成原理里说过死锁有三个必要条件他们分别是循环等待、资源共享、非抢占式,在并发中出现通道死锁只有两种情况:数据要发送,但是没有人接收数据要接收,但是没有人发送发送单个值时的死锁牢记这两点问题就很清晰了,复习下之前的例子,会死锁a:=make(chanint)a

Golang 2021-07-26 195 0 0 阅读全文

Go语言中Json数据的读取和写出操作

go自带json库,在使用时需要通过import"encoding/json"来导入该库。在读取和写入json数据之前需要定义相关的结构体来对应被操作的json数据的格式,并且结构体中需要导出或导入的变量首字母大写。其中,json.Marshal()用于将一个对象转换为json格...

Golang 2021-04-29 223 0 0 阅读全文

Golang值类型转换成[]Uint8类型的操作

在go语言中,byte其实是uint8的别名,byte和uint8之间可以直接进行互转。目前来只能将0~255范围的int转成byte。funcInt64ToBytes(numint64)[]uint8{varbufferbytes.Buffererr:=binary.Write(&buff...

Golang 2021-05-08 189 0 0 阅读全文

Go Mod 使用旧版本 版本号指定方式

在使用gomod的过程中,发现不容易指定版本号尤其是没有打tag的,不知道怎么指定版本号,不知道有哪版本号正常使用都没有问题,但是当引用的项目用了旧的代码,这时候必须使用旧的版本,无法指定版本,不知道如何入手尤其是k8s.io不知道是什么鬼,从哪里看它的代码,只知道github.com这个时候在go...

Golang 2021-05-08 224 0 0 阅读全文

Golang 实现菜单树的生成方式

golang实现菜单树的生成,包括菜单节点的选中状态、半选中状态,菜单的搜索。1该包提供两个方法根接口1.1GenerateTree(nodes,selectedNodes[]INode)(trees[]Tree)GenerateTree自定义的结构体实现INode接口后调用此方法生成树结构。1.2...

Golang 2021-04-29 314 0 0 阅读全文

Golang协程池设计详解

WhyPoolgo自从出生就身带“高并发”的标签,其并发编程就是由groutine实现的,因其消耗资源低,性能高效,开发成本低的特性而被广泛应用到各种场景,例如服务端开发中使用的HTTP服务,在golangnet/http包中,每一个被监听到的tcp链接都是由一个groutine去完成处理其上下文的...

Golang 2021-04-29 175 0 0 阅读全文

Golang 监听服务的信号,实现平滑启动,Linux信号说明详解

监听服务的信号,实现平滑启动,linux信号说明packagemainimport("context""fmt""golang.org/x/sync/errgroup""net/http""os"&q...

Golang 2021-05-08 219 0 0 阅读全文

Golang 语言高效使用字符串的方法

01介绍在Golang语言中,string类型的值是只读的,不可以被修改。如果需要修改,通常的做法是对原字符串进行截取和拼接操作,从而生成一个新字符串,但是会涉及内存分配和数据拷贝,从而有性能开销。本文我们介绍在Golang语言中怎么高效使用字符串。02字符串的数据结构在Golang语言中,字符串的...

Golang 2021-04-07 228 0 0 阅读全文

GO语言Ini配置文件的读取的操作

iniconf博主前两天在写一个小的go语言项目,想找一个读取ini格式配置和的三方库,在网上找了一圈感觉都不是很好用,使用起来非常的奇怪,于是自己写了一版,还有两个接口没有实现,在项目中修改或删除配置项后更新到文件中,等待后续有时间了再写,希望用的朋友感觉不错点个赞github地址描述使用inic...

Golang 2021-05-08 168 0 0 阅读全文

Golang内置函数Len的小技巧

len是很常用的内置函数,可以测量字符串、slice、array、channel以及map的长度/元素个数。不过你真的了解len吗?也许还有一些你不知道的小知识。我们来看一道GO101的题目,这题也被GO语言爱好者周刊转载:packagemainimport"fmt"funcma...

Golang 2021-07-26 199 0 0 阅读全文

Golang中Channel+Error来做异步错误处理有多香

官方推荐golang中错误处理当做值处理,既然是值那就可以在channel中传输,本文带你看看golang中channel+error来做异步错误处理有多香,看完本文还会觉得golang的错误处理相比javatrycatch一点优势都没有吗?场景如下,一次任务起多个协程异步处理任务,比如同时做服务/...

Golang 2023-01-28 49 0 0 阅读全文

Go语言中Iota和左移右移的使用说明

在go语言中iota比较特殊,是一个被编译器修改的常量,在每一个const关键字出现时被重置为0,然后在下一个const出现之前,每出现一次iota,其所代表的数字就会自动加1左移运算符"“左边的运算数的各二进位全部右移若干位,”>>"右边的数指定移动的位数。pack...

Golang 2021-05-08 211 0 0 阅读全文

浅谈Golang切片(Slice)扩容机制的原理

我们知道Golang切片(slice)在容量不足的情况下会进行扩容,扩容的原理是怎样的呢?是不是每次扩一倍?下面我们结合源码来告诉你答案。一、源码Version:go1.15.6src/runtime/slice.go//go1.15.6源码src/runtime/slice.gofuncgrows...

Golang 2021-06-09 192 0 0 阅读全文