![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Go
文章平均质量分 59
秋山刀名鱼丶
一年之内毫无半点成绩,想起来做人真是没趣。
展开
-
【web压测】压测常用工具、压测指标到底是什么?
web压测工具以及指标原创 2022-10-25 20:18:57 · 1046 阅读 · 0 评论 -
go语言gin、net/http的优雅关机
gin优雅地关机或重启原创 2022-10-15 16:53:31 · 311 阅读 · 0 评论 -
一道Gloang并发、锁的面试题,你会吗?
一道并发、锁的Golang面试题原创 2022-09-29 10:02:44 · 463 阅读 · 0 评论 -
【Go语言】赛码网、牛客(ACM模式)输入模板——秋招必备
ACM模式输入模板原创 2021-10-24 09:42:53 · 846 阅读 · 0 评论 -
Go语言操作grpc详细使用
proto文件,最后的服务函数写这个,然后编译文件。proto文件,最后的服务函数写这个,然后编译文件。proto文件,最后的服务函数写这个,然后编译文件。proto文件,最后的服务函数写这个,然后编译文件。在pbfiles的文件目录下,运行下面的命令。会在proto_go下生成两个文件。原创 2022-09-18 21:03:41 · 1182 阅读 · 0 评论 -
Go语言操作protobuf协议使用详解
Go操作protobuf原创 2022-09-18 14:58:36 · 1372 阅读 · 0 评论 -
【Go语言】洗牌、快排、归并、二分、堆排序、topk算法集合
【代码】【Go语言】洗牌、快排、归并、二分、堆排序、topk算法集合。原创 2022-09-12 10:24:22 · 340 阅读 · 0 评论 -
别人总结的“雪花算法”
雪花算法原创 2022-08-13 09:33:51 · 506 阅读 · 0 评论 -
【Go语言版本:LFU最小频率缓存淘汰算法】四张图自己看懂LFU缓存算法(双哈希+双向链表方法)
【Go语言版本LFU最小频率缓存淘汰算法】四张图自己看懂LFU缓存算法(双哈希+双向链表方法)原创 2022-08-01 19:38:23 · 271 阅读 · 0 评论 -
【2022版】Golang面试题目全网超全超详细的口语化解答总结
GO语言面试题目总结,站在巨人的肩膀上吧,也有自己的分析。有相关的题目。原创 2022-06-10 20:24:58 · 7369 阅读 · 3 评论 -
【zinx三刷】Golang轻量级TCP服务器框架整体框图
Golang轻量级TCP服务器框架整体框图原创 2022-05-29 21:42:26 · 410 阅读 · 0 评论 -
【我不信你没有这样的疑惑】浅谈Go语言的通道状态——正常、阻塞、panic、死锁
浅谈Go语言的通道问题——遍历通道的方式以及关闭通道的影响、死锁等问题原创 2022-05-02 16:21:12 · 593 阅读 · 0 评论 -
关于Go语言的非main函数退出后,其子协程是否会退出这件事
关于Go语言的非main函数退出后,其子协程的是否退出这件事一级目录一级目录原创 2021-11-03 20:17:59 · 2398 阅读 · 0 评论 -
【白话】Go语言的类型断言
go语言类型断言类型断言断言之前的变量与之后的变量断言是否实现了某个接口(包含某个方法的实现)类型分支类型断言go里面的类型断言写法:x.(T)其中x为interface{}类型,T是要断言的类型举个栗子:有一个接口point,有两个变量pointA、pointB,且这两个变量都实现了改接口假如我们要实现一个函数func display(p point) { … },功能是若传入的参数p的那个变量的动态类型是pointA的话,就输出A,是pointB的话,就输出B这时候就要用到类型断原创 2021-11-02 11:11:01 · 634 阅读 · 0 评论 -
【白话】Go语言的http创建
白话Go的http创建1. 引言2. http创建1. http.Handler接口介绍2. 一步一步来1. 最简单的仅能执行单一功能2. 加入URL的使用,实现多路径访问3. 创建ServeMux,实现功能路由4. 默认的DefaultServeMux,减少代码书写1. 引言咱们一步一步来,学了很多次的这个http服务器创建,还不是很熟悉。2. http创建1. http.Handler接口介绍type Handler interface { ServeHTTP(w Response原创 2021-10-31 22:12:03 · 549 阅读 · 0 评论 -
【zinx】Golang轻量级TCP服务器框架(一)—— 基础server
Golang轻量级TCP服务器框架(一)——基础server1.思路2.server接口的设计3.server接口的实现4.问题所在原作者视频地址:zinx-Golang轻量级TCP服务器框架本人为自学整理的文档,梳理思考开发框架的基本思路,方法。若向学习,可以直接观看原作视频即可。1.思路首先,我们要开发的是一个tcp的框架,也就是说,我们要构建一个tcp的包,去供开发人员进行使用。也就是在开发人员的角度来讲,要有如下的伪代码:s := zinx.server("tcp_server")原创 2021-09-23 21:09:18 · 2831 阅读 · 0 评论 -
go语言结构体json编码时候忽略某个字段
go语言结构体json编码时候忽略某个字段话不多说,先上代码package mainimport ( "encoding/json" "fmt")type Person struct { Name string `json:"name"` Age int `json:"age"` Addr string `json:"addr,omitempty"` Tab bool `json:"-"`}func main() { p1 := Person{ Name:原创 2021-07-22 16:33:42 · 5488 阅读 · 2 评论 -
go语言写入文件与写入内存benchmark测试
go语言写入测试package mainimport ( "crypto/rand" "os" "testing")func BenchmarkFile(b *testing.B) { f, err := os.OpenFile("/home/cjs/elastic/1.txt", os.O_RDWR|os.O_CREATE, 0666) if err != nil { panic(err) } defer f.Close() blob := make([]byte, 1原创 2021-06-13 10:18:16 · 454 阅读 · 0 评论 -
golang字符串string与字符数组[]byte高效转换
golang字符串string与字符数组[]byte高效转换参考链接原创 2021-06-02 13:51:42 · 448 阅读 · 1 评论 -
Go语言的接口型函数代码【防备忘】
Go语言的接口型函数代码Golang必备技巧:接口型函数package mainimport ( "fmt")type Handler interface { Get(key string) []byte}type HandlerFunc func(key string) []bytefunc (h HandlerFunc) Get(key string) []byte{ return h(key)}func Each(s string, h Handler) {原创 2021-05-18 21:16:53 · 163 阅读 · 1 评论 -
go context学习链接
go context学习链接备用深度解密Go语言之context由浅入深聊聊Golang的context学会使用context取消goroutine执行的方法原创 2021-05-04 17:11:15 · 101 阅读 · 0 评论 -
go 空接口简单使用
go 空接口简单使用语法菜鸡,在此互啄package mainimport "fmt"//空接口类型exampletype test struct { ueueq int}func main(){ var obj interface{} var th int = 10 var cn string = "AG" var ds = test{25} obj = th //将int类型的值赋给空接口 fmt.Println(obj) oh := obj.(int)原创 2021-05-03 10:43:14 · 419 阅读 · 0 评论 -
【详细】最详细的go module 依赖管理的基本使用
最详细的go module 依赖管理的基本使用go module1.开启go module以及更换go代理国内代理网站2.使用go module(从零开始)2.1初始化2.2新建.go文件或者复制原来的go文件到当前目录2.3检测依赖2.4下载依赖2.5导入依赖2.6解决上述问题3.module模式下如何调用本地包3.1建立新的文件夹或者复制过来到当前目录3.2在main中的调用4.go module常用命令5.参考链接go module1.开启go module以及更换go代理国内代理网站2.使用原创 2021-05-01 14:12:36 · 431 阅读 · 0 评论 -
【详细】Ubuntu20.04安装Go与Goland
Ubuntu20.04安装教程链接总结go安装goland安装go安装下载go语言Go下载链接移动并解压sudo tar -zxvf go1.16.2.linux-amd64.tar.gz -C /usr/local/配置环境变量sudo vim /etc/profile #这是所有用于的环境变量打开文件后,在最后面输入:export GOROOT=/usr/local/goexport GOPATH=$HOME/goproject #这是你的工程目录,需要手原创 2021-03-20 10:47:18 · 6307 阅读 · 2 评论 -
Golang 协程 (goroutine) 与通道 (channel)【防备忘】
@[TOC](Golang 协程 (goroutine) 与通道 (channel))协程进程:就是程序在操作系统中的一次执行过程线程:是进程的一个执行实例,比进程更小的能独立运行的基本单位协程:可以理解为更为轻量级的线程并行:在多个cpu上,比如一个cpu上有一个线程,在同一时刻,就会有多个线程在同时执行,这就是并行并发:在一个cpu上,这一个cpu上有多个线程在运行,给你的感觉好像在同时运行,其实,是这多个线程来回切换着执行,实际上,只有一个线程在执行,这就是并发不同协程之间的数据原创 2020-12-29 15:16:09 · 426 阅读 · 0 评论 -
Golang JOSN【防备忘】
Golang JOSNjson概念JSON是一种轻量级的数据交换格式。数据形式为:key-value应用场景数据格式说明结构体、map、切片、序列化package mainimport ( "encoding/json" "fmt")//Monster SStype Monster struct { Name string `json:"monster_name"` //序列化后,名字自己重新指定 Nirrhday string `json原创 2020-12-28 19:25:22 · 118 阅读 · 0 评论 -
Golang 文件操作【防备忘】
Golang 操作文件概念上图中,返回的这个file指针,有三种叫法:文件对象、文件指针、文件句柄 都可以我们在理解的时候,其实file就是一个指针,这样更容易理解。文件的打开、关闭file,err := os.Open("路径+文件名")if err != nil{ ...}err = file.Close() //文件关闭if err != nil{ ...}用带缓冲的Reader读取大文件import "bufio" //主要是,你知道原创 2020-12-28 16:05:48 · 108 阅读 · 0 评论 -
Golang 接口【防备忘】
Golang 接口``其实就是面对对象里面的多态性,而且比面对对象里面的更容易理解。接口定义了一组方法(方法集),但是这些方法不包含(实现)代码:它们没有被实现(它们是抽象的)。接口里也不能包含变量。type Namer interface { Method1(param_list) return_type Method2(param_list) return_type ...}上面的 Namer 是一个 接口类型。(按照约定,只包含一个方法的)接口的名字由方法原创 2020-12-27 15:25:13 · 117 阅读 · 0 评论 -
Golang 基础【防备忘】
Golang 基础常量//关于const的用法const obj1 string = "CJS"const obj2 = "NB" //也可把tped去掉,系统会自动识别类型const ( Sunday = 7 Monday = 1 Tuesday = 2 Wednesday = 3 Thursday = 4 Friday = 5 Saturday = 6)//关于iota的用法,有点复杂,使用的时候,先进行测试//以后可以使用原创 2020-12-24 17:08:52 · 101 阅读 · 0 评论 -
Golang 数组与切片的对比【防备忘】
Golang 数组与切片的对比一、数组1.定义2.调用数组二、切片1.定义2.调用切片三、总结Go的数组可以说是不经常用到,切片会用到的更多,但是Go的数组与C的数组又有着不同,所以还是想写一下。一、数组1.定义Go语言的数组是值类型,什么意思呢?C语言的数组,大家都知道,数组的名字就代表,这个数组 的第一个元素的指针,然后通过这个指针的加加减减,可以获取到数组中的任何一个值。而Go不是这样的,Go的数组是值类型,它的数组名字并不能代表这个指针,这里说的或许不是很恰当,我们无法通过Go的数组名原创 2020-11-06 17:36:02 · 181 阅读 · 0 评论 -
Golang 结构体【防备忘】
Golang 结构体结构体定义整体来说,与C语言的定义方式相同type struct_name struct{ ...}结构体的字段可以是任何类型,甚至是结构体本身,也可以是函数或者接口与C++中的类,很相似,但是go没有类的概念type ueueQ struct{ a int b float32}一、var temp ueueQtemp = ueueQ{100, 99.9}二、temp := ueueQ{100, 99.9}temp := ueueQ{a:100,原创 2020-11-03 21:26:50 · 361 阅读 · 0 评论 -
Golang Map【防备忘】
Golang Map基本表述方式var map_name map[keytype]valuetypemap_name为map的变量名keytype为键,是任意可以用 == 或者!= 操作符比较的类型,比如 string、int、float。数组、切片和结构体不能作为 key (译者注:含有数组切片的结构体不能作为 key,只包含内建类型的 struct 是可以作为 key 的),但是指针和接口类型可以。如果要用结构体作为 key 可以提供 Key() 和 Hash() 方法,这样可以通过原创 2020-11-03 08:11:43 · 122 阅读 · 0 评论 -
Golang 函数【防备忘】
Golang 函数允许这样进行假设 f1 需要 3 个参数 f1(a, b, c int),同时 f2 返回 3 个参数 f2(a, b int) (int, int, int),就可以这样调用 f1:f1(f2(a, b))。这个有点意思按值传递(call by value) 按引用传递(call by reference这个个意思都懂,就不再赘述了切片(slice)、字典(map)、接口(interface)、通道(channel)这样的引用类型都是默认使用引用传递(即使没有显原创 2020-10-30 18:11:55 · 119 阅读 · 0 评论 -
Golang 切片【防备忘】
Golang 切片没有新东西,就是整理一遍,加强记忆!切片是引用(也就是个指针),所以切片定义与数组形式相同,所以它们不需要使用额外的内存并且比使用数组更有效率,所以在 Go 代码中 切片比数组更常用。最简单、基本定义形式obj := [...]int{1,2,3,4,5,6,7,8,9,0}var slice []int //切片的[]中不需要写长度slice = obj[2,7] //包括2,不包括7,自行体会//这样silce就是包含{3,4,5,6,7}的切片简化原创 2020-10-26 21:32:17 · 129 阅读 · 0 评论 -
Golang数组【防备忘】
Golang 数组没有新东西,就是整理一遍,加强记忆!最基础形式var obj [5]intobj[3] = 99//索引从0开始,可通过下标方式访问,同c语言定义的同时赋值obj := [...]int{6,5,4,3,3,2}obj := []int{6,5,4,3,3,2}obj := [6]int{6,5,4,3,3,2}//这三种方式均可var obj = [5]string{3: "Chris", 4: "Ron"}//给对应的下标赋值,其余下标数据为空字符原创 2020-10-26 15:16:38 · 76 阅读 · 0 评论 -
Go语言在windows上环境配置、vscode的配置以及go插件安装失败的问题解决
【WIN版本】GO语言环境配置1.下载go语言包1.1 下载地址1.2 解压1.3 配置环境变量1.3.1 打开环境变量1.3.2 新建GOROOT1.3.3 在Path中增加环境1.3.4 新建GOPATH1.4 验证2.安装vscode2.1 安装vscode2.2 安装GO插件3.vscode安装GO插件失败问题解决3.1 安装git3.2 设置vscode,可以使用git命令3.3 更换go代理3.4 vscode安装go插件4.参考链接1.下载go语言包1.1 下载地址Go 安装包下载选原创 2020-10-21 15:42:28 · 1123 阅读 · 4 评论