golang多次读取http request body的问题分析

目录问题起因问题探究问题溯源问题起因使用postman发送了一个http请求,对每个请求都有一个对应的context:type APIContext struct { Action string ID string Type...

Golang中make与new使用区别小结

目录前言变量的声明newmakemake与new的异同前言本文主要给大家介绍了Go语言中函数new与make的使用和区别,关于Go语言中new和make是内建的两个函数,主要用来创建分配类型内存。...

详解golang channel有无缓冲区的区别

目录有无缓冲的区别channel 无缓冲例1:例2:channel 带缓存例1:例2:一边存,一边取有无缓冲的区别形象说明一下无缓冲和有缓冲的区别:无缓冲是同步的,例如 make(chan int),就是一...

Golang中interface是引用类型的原因解析

目录1. Go中的引用类型2. 接口的本质3. Interface的实现方式4. 为何选择引用类型4.1 灵活性与动态性4.2 内存利用与性能提升4.3 避免值拷贝5. Interface的引用类型案例5.1...

使用Golang生成压缩文件的详细教程

目录方法一方法二压缩实现过程创建压缩归档文件初始化归档文件zip.Writer使用zip.Writer.Create增加文件压缩文件使用 io.Copy 或 io.Writer.Write 写文件内容使用zip.Write...

Go连接并操作SQLite数据库基本步骤

目录安装 SQLite 驱动创建数据库连接执行 SQL 查询插入数据查询数据更新数据删除数据安装 SQLite 驱动首先,我们需要在 Go 环境里安装 SQLite 的驱动程序,可以使用以下命令进...

Go io/fs.FileMode文件系统基本操作和权限管理深入理解

目录引言1. FileMode 的基本概念2. FileMode 的类型和值3. 使用 FileMode主要方法和常量4. FileMode 在实际开发中的应用示例5. FileMode 与文件系统交互结语引言在Go语言的...

Go语言网站使用异步编程和Goroutine提高Web的性能

目录异步编程概述协程管道定时器错误处理Goroutine介绍使用Goroutine实现异步编程使用Goroutine并发处理Web请求单线程Web服务器使用Goroutine处理Web请求使用协程池处理Web...

一文详解go闭包(Closure)使用教程

目录什么是go闭包闭包的作用使用闭包的注意事项go哪些组件使用了闭包什么是go闭包在Go语言中,闭包(Closure)是一种特殊的函数,它可以捕获其创建时所在作用域中的变量。闭包通常...

Go语言单元测试的实现及用例

目录1.go test工具测试函数的格式测试函数示例测试组子测试测试覆盖率2.基准测试基准测试函数格式基准测试示例性能比较函数重置时间并行测试3.Setup与TearDownTestMain子测...

Golang如何将上传的文件压缩成zip(小案例)

目录Golang将上传的文件压缩成zip小案例go语言实现zip压缩文件Golang将上传的文件压缩成zip小案例这是一个简单的golang压缩文件小案例,可做很多的拓展,这里使用的库是archive...

Golang map与sync.map的异同详解

目录1. Golang Map 回顾1.1 基本特性1.2 使用案例2. sync.Map 介绍2.1 并发安全性2.2 使用案例3. 异同比较3.1 并发安全性3.2 性能3.3 使用场景4. 使用案例:并发安全的计数器...

浅析Go语言中的缓冲区及其在fmt包中的应用

目录传统的IO流程缓冲区go缓冲区为什么go 缓冲区(Buffer)是分配在堆还是栈?fmt打印示例源码查看当打印内容很大怎么办传统的IO流程在传统的IO流程中,通常涉及以下几个步骤:打开文...

Go 基本数据类型与字符串相互转换方法小结

目录Go 基本数据类型与字符串相互转换1.基本类型转换成字符串(string)2.字符串转换成基本数据类型 strconv包Go - 基本数据类型和其字符串表示之间转换1. 基本数据类型和其...

go 语言爬虫库goquery的具体使用

目录爬虫介绍goquery介绍安装创建文档内置函数利用NewDocumentFromReader方法获取主页信息Document介绍通过查询获取文章信息css选择器介绍goquery中的选择器标签。获取主页...

详解如何使用Go的Viper来解析配置信息

目录前言Viper简介快速上手库的安装读取配置文件单个属性序列化为对象更多语法写回配置文件WriteConfigSafeWriteConfigWriteConfigAsSafeWriteConfigAs监听配置文件注册和...

从零封装Gin框架实现日志初始化及切割归档功能

目录前言安装定义日志配置项定义 utils 工具函数初始化 zap定义全局变量 Log测试前言本篇来讲一下怎么将日志服务集成到项目中,它也是框架中必不可少的,平时代码调试,线上 Bug...

Golang中常见的三种并发控制方式使用小结

目录1. sync.WaitGroup2. channel2.1 使用无缓冲channel进行同步2.2 使用有缓冲channel进行限流3. Context3.1 超时控制3.2 取消操作3.3 资源管理Go语言中的goroutine是一种...

浅析Golang如何向已关闭的chan读写数据

目录1. 向已关闭的chan写2. 向已关闭的chan读1. 向已关闭的chan写会直接panic,报 send to close channel错误package mainfunc main() { // 创建缓冲区为4的字符串chan schoo...

浅析Go语言中内存泄漏的原因与解决方法

目录channel 泄漏select case 导致协程泄漏for range 导致的协程泄漏goruntine 中 map 并发用火焰图分析下内存泄漏问题分析协程泄漏分析内存增长泄漏遵循一个约定:如果gorou...

详解Go 1.22 for循环的两处重要更新

目录循环的每次迭代都会创建新变量循环支持对整数范围进行迭代小结Go 1.22 版本于 2024 年 2 月 6 日发布,引入了几个重要的特性和改进。在语言层面上,这个版本对 for 循环进...

go语言go func(){select{}}()的用法

本文主要介绍了go语言go func(){select{}}()的用法,具体如下:go func(){ select{ ...... }}()是使用Goroutine和Channel的一个例子,也是Go语言中异步编程的标志之一。
具体来...

Golang使用cobra实现命令行程序的示例代码

目录前言Cobra库介绍简单应用进阶使用总结前言交付的数据文件,需要验证文件中的字段数量等功能,使用Go开发一个命令行程序进行交付Cobra库介绍Cobra 是 Go 语言中一个强大的命...

Golang中interface转string输出打印方法

目录前言一、interface 转json再转string二、使用类型判断总结前言在开发过程中,有时我们使用interface类型接受某些参数接口或返回类型,但输出时,比如记录日志时存在很多不方...

go交叉编译sqlite报错问题解决分析

目录go sqlite交叉编译编译问题报错交叉编译go环境变量组合go-sqlite的交叉编译分析go sqlite交叉编译最近服务端用到了sqlite,因为服务端用go进行编写的,在移植完go-sqlite3...

Golang使用crypto/ed25519实现数字签名和验证

目录引言crypto/ed25519 算法简介环境搭建和准备工作生成密钥对进行数字签名验证签名实际应用场景案例总结引言在当今数字化时代,网络安全显得尤为重要。无论是在网上进行交...

Golang Fasthttp选择使用slice而非map 存储请求数据原理探索

目录引言Slice vs Map:基本概念内存分配和性能Fasthttp 中的 SliceMap性能优化的深层原因存储数据特性CPU 预加载特性结论引言Fasthttp 是一个高性能的 Golang HTTP 框架,它在...

利用golang实现pdf中自动换行的表格

目录实现自动换行的表格创建页面、指定字体其他常用写入方法需要用到的库:jung-kurt/gofpdf由于CellFormat方法不支持\n换行,会被变成乱码,MultiCell方法会自动将坐标定位到下...

深入探究Go语言的错误策略与异常机制

目录前言Go错误处理策略创建error的几种方式errors包fmt包自定义错误类型如何处理错误直接返回错误记录日志并继续运行记录日志并结束运行Go异常处理机制panic函数recover函...

golang sudog指的是什么

sudog代表在等待队列中的goroutine,比如channel发送接受。由于goroutine和同步对象的关系是多对多,因此需要sudog映射type sudog struct { // 指向的goroutine g *g // 指向...

Go引用github包的详细流程步骤

目录Linux上如何引用如果定义了环境变量进入正题①、创建引用目录②、拷贝源码③、引用Windows上如何引用原理上和linux系统引用相似如果没定义GoPathLinux上如何引用如果定...

go语言实现LRU缓存的示例代码

目录简单了解 LRU 是什么LRU 机制实现分析题目描述详细代码缓存是在平时开发中最常用的中间件之一,尤其是在 WEB 开发中更为常见,大家最常用的肯定还是 Redis 或者 Memcached...

go原子级内存操作实现

原子级内存操作是在多线程并发执行时,能够确保某个内存操作是不可中断的操作。在计算机系统中,CPU执行指令是基本的原子操作,即一个指令的执行是不可被中断的。然而,在多线程并...

提高golang源码阅读效率的六个高级技巧

目录引言第一个:在大型项目中游刃有余的行走使用快捷键:alt+Home第二个:在已经打开的多个文件之间来回穿梭使用快捷键:alt+left/right left 表示左箭头,right 表示右箭头第三个:远...

使用golang在windows上设置全局快捷键的操作

目录hotkey热键1.需求2.使用包3.开发文档4.具体实现5.fyne结合hotkey 开发一个辅助工具hotkey热键1.需求最近在工作中,总是重复的做事,想着自己设置一个快捷键实现windows 剪...

Go基于struct tag实现结构体字段级别的访问控制

目录struct tag 是什么?具体有什么用呢?常见使用场景JSON/XML 序列反序列化数据库操作数据验证tag 行为自定义案例:结构体字段访问控制定义结构体实现权限控制使用演示总结stru...

Go语言中实现enum枚举的方法详解

目录使用 iota 和常量支持字符串转化的枚举值结构体枚举值结构体类似命名空间效果类型安全真实场景总结你是否了解过 Go 中的枚举呢?枚举,即 enum,可用于表示一组范围固定的值,...

Golang使用Gin实现文件上传的示例代码

目录前言使用原生net/http库实现文件上传使用Gin实现文件上传单个文件上传FormFile()获取文件SaveUploadedFile()保存到本地 设置缓冲区大小限制文件大小限制文件类型完整示...

一文带你探索Go语言中crypto/md5标准库的强大功能

目录引言Go语言和MD5的基础知识MD5算法简介Go语言概述Go中的MD5实现crypto/md5 库的使用方法基本用法处理大型数据安全注意事项实际案例分析示例1:文件的MD5校验示例2:网络数...

如何在golang中检查文件是否存在

目录os.Stat 检查文件状态与 C 对比Go1.13 以及之后推荐使用 errors.Is直接使用 Open 避免竞态条件open 是原子操作结论Go 中如何检查文件是否存在呢?如果你用的是 Python,可...

Golang Gin框架获取请求参数的几种常见方式

目录传递参数的方式HeaderURLHTTP Body直接获取请求参数获取URL Path中的参数获取URL Query中的参数获取HTTP Body中的参数绑定请求参数绑定Header参数绑定URL Path参数绑定...

Go操作各大消息队列教程(RabbitMQ、Kafka)

目录1 RabbitMQ1.1 概念①基本名词②常见模式1.2 搭建(docker方式)①拉取镜像②创建并启动容器③web界面创建用户和virtual host1.3 代码操作①RabbitMQ struct:包含创建、消费...

更换GORM默认SQLite驱动出现的问题解决分析

目录GORM简介安装快速开始GORM使用更换第三方SQLite驱动解决问题解决方案:更换GORM默认的SQLite驱动代价GORM简介GORM 是 Go 语言中最受欢迎的 ORM 库之一,它提供了强大的功能...

Go语言实现可选参数的方法小结

目录方法1:可变长参数(Variadic Args)方法2:使用Map方法3:使用结构体(Structs)方法4:函数选项模式(Functional Options Pattern)总结我们编程时,常会遇到:一个函数在大多数情况下只需要...

一文掌握gorm简介及如何使用gorm

目录gorm简介什么是gorm?gorm的特点如何使用gorm?总结gorm简介什么是gorm?gorm是一个强大的Go编程语言中的ORM(对象关系映射)库。ORM是一种技术,它将数据库表中的数据映射到面向对...

一文了解Go语言的并发特性

目录Goroutines: 轻量级线程Channels: 数据的并发安全传递Select: 多路复用实例:使用Go并发特性实现一个简单的并发模型总结补:go语言高并发特性应用场景应用示例代码Go语言自...

Golang使用pprof检查内存泄漏的全过程

目录前言测试代码发送请求分析内存查看内存分配比较内存分配查看启动以来的内存分配前言pprof 是golang提供的一款分析工具,可以分析CPU,内存的使用情况,本篇文章关注它在分析...

golang压缩与解压缩文件的示例代码

目录压缩核心处理解压缩压缩入口压缩函数useBasePathInZip参数:为 false 相当于全文件视图,zip中没有目录
为 true表示保留源文件的路径(srcPaths如果是相对路径,则压缩后zip文...

Go语言实现lru淘汰策略和超时过期

目录lru淘汰策略超时淘汰代码实现实例化缓存添加数据删除缓存获取缓存定期删除测试lru淘汰策略缓存的大小是有限的,当添加数据发现剩余缓存不够时,需要淘汰缓存中的部分数据。...

使用Go语言实现心跳机制

目录Go 实现心跳心跳程序Go 实现心跳心跳最典型的应用场景是是探测服务是否存活,比如在 Zookeeper 中,会使用心跳探测服务是否存货,如果服务已经死亡,会将服务从注册表中删除,避...

返回顶部
顶部