从零封装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参数绑定...

返回顶部
顶部