Go语言学习
文章平均质量分 68
JYZzz.
这个作者很懒,什么都没留下…
展开
-
Golang:redis lua lib
golang redis lua封装库,封装了String/Hash结构的检查扣减和Hash结构的批量扣减脚本原创 2021-12-26 19:20:51 · 599 阅读 · 0 评论 -
Golang: unsafe包的使用
1. golang各类型占空间字节数package mainimport ( "fmt" "unsafe")var tByte bytevar tRune runevar tInt32 int32var tInt intvar tInt64 int64var tFloat32 float32var tFloat64 float64var tComplex64 complex64var tComplex128 complex128var tEmptyStruct struct原创 2021-06-27 20:06:57 · 593 阅读 · 1 评论 -
golang:goredis库pipeline使用方式
goredis库连接客户端package clientimport ( "github.com/go-redis/redis" "github.com/sirupsen/logrus")var MainRDS *redis.Clientfunc init() { ConnectRedis()}func ConnectRedis() { MainRDS = redis.NewClient(&redis.Options{Addr: "127.0.0.1:6379", Passwo原创 2021-04-24 23:46:40 · 8419 阅读 · 0 评论 -
protobuf:protoc生成golang文件
protoc版本:libprotoc 3.15.6protoc-gen-go版本:proto 文件syntax = "proto3";package proto;message ReqHead { int32 command_id = 1;}message ReqBody { string body = 1;}message BaseReq { ReqHead req_head = 1; ReqBody req_body = 2;}message BaseRes原创 2021-04-24 23:24:03 · 9436 阅读 · 3 评论 -
Golang: Gob反序列化到已赋值的结构
结论 对于值类型的非零值,直接向目标结构赋值,否则跳过不处理; 对于引用类型的非空值,对于slice而言,若原数据len(slice)>0,使用原数据覆盖目标数据;对于map而言,若原数据len(map)>0,遍历原数据为目标数据赋值反序列化到已赋值的map中的坑 &原创 2020-12-20 00:44:08 · 329 阅读 · 1 评论 -
golang 避免程序出现死循环
package mainimport ( "fmt" "time")func main() { // 业务逻辑 // 假设当前的业务需要循环对array进行赋值 var array []int startParam := 0 doneChan := make(chan struct{}, 1) // channel通知任务完成 NoCircleRange(doneChan, time.Second*5, func() { // 安全的循环 /*****业务逻辑 (循环体)**原创 2020-12-01 12:13:39 · 982 阅读 · 0 评论 -
Golang Gin框架使用JWT实现简单身份验证
小白文小白文小白文原创 2020-05-13 10:55:00 · 1926 阅读 · 1 评论 -
Golang Gin框架实现文件下载功能
layui 上传文件Gin框架获取前端上传的文件PS:小白文,只是提供了一个亲测有效的处理方式,如有错误或更好的方法,欢迎指正原创 2020-05-10 23:05:28 · 20829 阅读 · 3 评论 -
Go语言中的数组、切片和字符串
Go语言数组的定义方式:var 数组名称 [数组长度]数组类型数组名称 := [数组长度]数组类型{赋值}切片即可变长度的数组,与数组不同的是不需要指定数组长度:var 数组名称 []数组类型数组名称:=[]数组类型{赋值}--------------------------------------------------------------------------------...原创 2019-05-12 15:43:27 · 1330 阅读 · 0 评论 -
Go语言实现控制台输入的方式
使用bufio和os包实现:类似Java控制台输入bufio建立缓冲区,os.Stdin确定输入位置func getInput() string { //使用os.Stdin开启输入流 //函数原型 func NewReader(rd io.Reader) *Reader //NewReader创建一个具有默认大小缓冲、从r读取的*Reader 结构见官方文档 in := bufio....原创 2019-05-11 11:48:44 · 9016 阅读 · 1 评论 -
windows下vscode开发Go程序GoPath相关
vscode配置Go语言开发环境网上的教程有很多,不再叙述,推荐https://www.cnblogs.com/zsy/p/5223957.htmlvscode搭建Go开发环境中的步骤中 配置vscode的setting.json文件时,需要设置:此处配置的GoPath起作用的范围为插件的作用范围,所使用的插件必须在GoPath下的bin目录中,否则vscode会找不到插件,由此引发的...原创 2019-05-10 10:06:48 · 8579 阅读 · 2 评论 -
Go项目中的包名和文件名
首先明确两个环境变量:GOROOT和GOPATHGOROOT是Go语言环境的安装路径,在安装开发环境时已经确定GOPATH是当前项目工程的开发路径,GOPATH可以有多个,每个GOPATH下的一般有三个包,pkg、src和bin,src用于存放项目工程的源代码文件,pkg文件夹下的文件在编译时自动生成,bin目录下生成*.exe的可执行文件。PS:每一个GOPATH下都可以有pkg、src、...原创 2019-05-06 11:38:47 · 3915 阅读 · 0 评论