golang游戏等资源压缩包创建和操作方法

游戏资源包的创建、修改、读取等操作。注意:资源包为游戏等需要快速读取的场景使用,所以并未对文件进行分块操作,都是一整个读取压缩的,所以需要自行保证文件大小的合理或者自行...

Golang接入钉钉通知的示例代码

目录设置与接入发送消息设置与接入1、创建一个钉钉群2、打开群设置,智能群助手,添加机器人,自定义Webhook接入3、设置机器人名字,开启消息推送,复制Webhook地址4、安全设置,选择自...

GoLang之标准库encoding/json包

目录1.JSON介绍2.JSON序列化、反序列化介绍3.encoding/json包介绍4.Marshal函数5.Umarshal函数 6.结构体标签Tag注:本文以Windos系统上Go SDK v1.8进行讲解1.JSON介绍在进行...

Go语言底层原理互斥锁的实现原理

目录Go 互斥锁的实现原理?概念使用场景底层实现结构操作加锁解锁Go 互斥锁正常模式和饥饿模式的区别?正常模式(非公平锁)饥饿模式(公平锁)Go 互斥锁允许自旋的条件?Go 互斥锁的...

Go语言基于HTTP的内存缓存服务的实现

目录缓存服务接口缓存服务实现定义状态信息实现Cache接口实现HTTP服务测试运行所有的缓存数据都存储在服务器的内存中,因此重启服务器会导致数据丢失,基于HTTP通信会将使开发...

golang 一次性定时器Timer用法及实现原理详解

目录前言Timertimer结构体创建定时器停止定时器重置定时器实现原理数据结构runtimeTimer创建Timer停止Timer重置Timer前言定时器在Go语言应用中使用非常广泛,Go语言的标准库...

详解Go语言中单链表的使用

目录链表单链表结构创建节点遍历链表头插法尾插法遍历方法链表长度链表转数组数组转链表链表一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的...

详解Go 语言如何通过测试保证质量

目录引言单元测试什么是单元测试Go 语言的单元测试单元测试覆盖率基准测试什么是基准测试Go 语言的基准测试计时方法内存统计并发基准测试基准测试实战总结引言本节带你学习...

Go语言TCP从原理到代码实现详解

目录引言TCP介绍特点图解代码实现1. 连接1.1 服务端1.2 客户端2. 通信2.1 服务端2.2 客户端3. 回复3.1 服务端3.2 客户端引言基于net包的小应用完整代码已经上传到github G...

Go语言如何高效的进行字符串拼接(6种方式对比分析)

目录前言string类型字符串拼接的6种方式及原理原生拼接方式"+"字符串格式化函数fmt.SprintfStrings.builderbytes.Bufferstrings.join切片appendBenchmark对比结论总结前言...

Go 热加载之fresh详解

正文热加载是指可以在不重启服务的情况下,保存后即可让更改的代码生效的一种开发模式。热加载可以显著的提升开发和调试的效率,有了热加载后,说明你不用重新再编译、再执行了。...

Go语言使用goroutine及通道实现并发详解

目录使用通道接收数据阻塞接收数据非阻塞接收数据接收任意数据,忽略掉接收的数据循环接收数据使用通道接收数据在上一篇文章中介绍了通道以及使用通道发送数据,本篇接着了解通...

Go Ticker 周期性定时器用法及实现原理详解

目录前言Ticker应用示例创建定时器停止定时器实现原理数据结构runtimeTimer创建Ticker停止TickerTicker 与 Timer 区别小结前言定时器在Go语言应用中使用非常广泛,Go语言的标...

Golang验证器之validator是使用详解

目录前言什么是validator安装使用方法校验规则跨字段验证错误处理小结前言对于HTTP请求,我们要在脑子里有一个根深蒂固的概念,那就是任何客户端传过来的数据都是不可信任的。...

Go Excelize API源码解读GetSheetViewOptions与SetPageLayout

目录一、Go-Excelize简介二、 GetSheetViewOptions三、 SetPageLayout一、Go-Excelize简介Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IE...

Go 编程复杂数据类型 Map

目录一、Map 的定义Map 的定义Map 中的 Key二、Map 的操作一、Map 的定义Go 中的 Map 是一组无需的 K-V 类型的数据,与 Python 中的字典 Dict 和 Java 中的 HashMap 结构类似...

Kotlin编程基础语法编码规范

目录前言文章总览1.Kotlin基本语法1.1 函数声明1.2 程序主入口1.3 变量1.4 条件表达式1.5 when表达式1.6 空值与空检测1.7 区间使用2.Kotlin编码规范总结前言上一篇我们认识...

2023-01-01

Go如何优雅的使用字节池示例详解

目录背景为何需要字节池最简单的方式测试不预先申请空间预先申请空间字节数组池测试结果更优雅的方式测试直接使用Bufferbytes.Buffer池测试结果限制池大小测试固定大小字节...

使用Go重试机制代码更可靠

目录场景设计原理场景服务依赖第三方服务或者其他服务,但有时第三方服务偶发性出现问题并且会快速的恢复,而我们的系统可能因为这些偶发性出现问题。所以无法保证以来服务的可...

Go Java算法最大单词长度乘积示例详解

目录最大单词长度乘积方法一:位运算(java)方法一:位运算(go)最大单词长度乘积给你一个字符串数组 words ,找出并返回 length(words[i]) * length(words[j]) 的最大值,并且这两个单词...

Go项目怎么使用枚举

目录前言为什么要有枚举定义新类型实现枚举protobuf中生成的枚举代码总结前言哈喽,大家好,我是asong。枚举是一种很重要的数据类型,在java、C语言等主流编程语言中都支持了枚举...

Go Java算法之累加数示例详解

目录累加数方法一:穷举法(java)方法二:深度优先遍历(go)累加数累加数 是一个字符串,组成它的数字可以形成累加序列。一个有效的 累加序列 必须 至少 包含 3 个数。除了最开始的两个...

三种Golang数组拷贝方式及性能分析详解

目录测试测试代码测试结果原理分析copyappend总结在Go语言中,我们可以使用for、append()和copy()进行数组拷贝,对于某些对性能比较敏感且数组拷贝比较多的场景,我们可以会对拷...

Go chassis云原生微服务开发框架应用编程实战

目录什么是Go chassis文章目标诞生背景如何快速开发一个微服务统一治理和协议模型可扩展的处理链条:handler chain as middleware不只是API,通过配置简化开发过程插件化什么是...

Go错误和异常CGO fallthrough处理教程详解

目录fallthrough代码示例执行结果CGO错误&异常处理错误:error处理异常:panic&recoverpanic&deferdefer执行顺序总结对比Java、C++错误异常互相转换fallthrough在一个 switch...

GO语言实现文件上传的示例代码

目录前言文件上传表单操作服务端操作流程实现小结前言最近在写一个文件上传的功能,现在来进行整理总结一下go语言如何上传文件的,本文主要分享一下golang实现文件上传的流程和...

Golang 中反射的应用实例详解

目录引言Golang类型设计原则Golang 中为什么要使用反射/什么场景可以(应该)使用反射举例场景:反射的基本用法反射的性能分析与优缺点测试反射结构体初始化测试结构体字段读取/...

Golang官方限流器库实现限流示例详解

目录前言例子实现小结前言在翻Golang官方库的过程中,发现一个有趣的库golang.org/x/time ,里面只有一个类rate,研究了一下发现它是一个限流器,实现了很多的功能,当然它的核心原理...

Go使用select切换协程入门详解

目录前言程序示例select 特性预览管道读写总结前言在 Go 中,可以通过关键字 select 来完成从不同的并发执行的协程中获取值,它和 switch 控制语句非常相似,也被称作通信开关;它...

多阶段构建优化Go 程序Docker镜像

目录引言构建 Docker 镜像是否可以再减小 Docker 镜像的大小?引言多阶段构建方式,是在 Dockerfile 中使用多个 FROM 指令,每个 FORM 指令都是一个新的构建阶段,并且可以方便地复...

Golang 内存管理简单技巧详解

目录引言预先分配切片结构中的顺序字段使用 map[string]struct{} 而不是 map[string]bool引言除非您正在对服务进行原型设计,否则您可能会关心应用程序的内存使用情况。内存...

go日志库中的logrus

一、安装go get github.com/sirupsen/logrus二、使用1、当做标准库使用logrus实现了标准库log的方法,可以用标准库的方法用于logrus,例如import ( log "github.com/sirupsen...

golang中使用匿名结构体的方法

目录转化为map定义具名结构体定义匿名结构体在一些项目中, 我们会使用json 来将字符串转为结构体,但是很多时候,这种结构体只会用一次,基本上只会用于反序列化, 对于这种只...

Go Java算法之单词搜索示例详解

目录单词搜索算法:DFS回溯(Java)算法:DFS回溯(Go)单词搜索给定一个 m x n 二维字符网格 board 和一个字符串单词 word 。如果 word 存在于网格中,返回 true ;否则,返回 false 。单词...

Golang 单元测试和基准测试实例详解

目录前言Go 单元测试单元测试覆盖率基准测试前言多人协作的项目里,要保证代码的质量,自然离不开单元测试。开发完一个功能后肯定要对所写的代码进行测试,测试没有问题之后再合...

Go通过不变性优化程序详解

目录正文减少对全局或外部状态的依赖仅导出结构体的函数,而不是成员变量在函数中使用复制值,而不是使用指针总结正文不变性的概念非常简单,在您创建结构体后,就永远无法修改它。...

带你在Go test中体验jest的安装使用

目录正文安装使用正文二话不说,先上图:图中我们看到,当你启动 gojest 命令后,可以进行交互式的测试。按 f 键聚焦第一个失败的用例当你保持时,可以自动重测精简了测试信息有了这...

一文带你入门Go语言中定时任务库Cron的使用

目录前言快速开始安装导入DemoCron表达式格式标准格式预定义时间表常用的方法介绍new()AddJob()AddFunc()Start()相关推荐Go第三方库之cronexpr——解析 crontab...

Go Excelize API源码阅读GetPageLayout及SetPageMargins

目录一、Go-Excelize简介二、 GetPageLayout三、SetPageMargins一、Go-Excelize简介Excelize 是 Go 语言编写的用于操作 Office Excel 文档基础库,基于 ECMA-376,ISO/IEC 2950...

go swagger生成接口文档使用教程

目录前言Swagger介绍1、安装2、检测是否安装成功3、安装gin-swagger扩展使用1、添加注释2、生成接口文档数据3、引入gin-swagger渲染文档数据总结前言这篇文章主要介绍了Go...

Go Java算法之单词规律示例详解

目录单词规律方法一:哈希表(Java)方法一:哈希表(GO)单词规律给定一种规律 pattern 和一个字符串 s ,判断 s 是否遵循相同的规律。这里的 遵循 指完全匹配,例如, pattern 里的每个字母...

Go WaitGroup及Cond底层实现原理

目录WaitGroup概念底层数据结构使用方法Cond概念底层数据结构使用方法WaitGroup概念Go标准库提供了WaitGroup原语, 可以用它来等待一批 Goroutine 结束底层数据结构// A Wai...

Go java 算法之括号生成示例详解

目录括号生成方法一:深度优先遍历(java)方法一:深度优先遍历(go)括号生成数字 n 代表生成括号的对数,请你设计一个函数,用于能够生成所有可能的并且 有效的 括号组合。示例 1:输入:n =...

go 熔断原理分析与源码解读

目录正文熔断原理熔断器实现hystrixBreaker和googlebreaker对比源码解读结束语正文熔断机制(Circuit Breaker)指的是在股票市场的交易时间中,当价格的波动幅度达到某一个限定的...

Golang errgroup 设计及实现原理解析

目录开篇errgroup 源码拆解GroupWithContextWaitGoSetLimitTryGo使用方法结束语开篇继上次学习了信号量 semaphore 扩展库的设计思路和实现之后,今天我们继续来看 golang.org...

Go语言实战学习之流程控制详解

目录1. 前言2. if分支3. for及for-range循环4. switch-case-fallthrough分支5. goto6. break和continue7. 跳出嵌套循环8. 最后1. 前言这里还是再总结一下流程控制,和其它语...

Golang 基于flag库实现一个简单命令行工具

目录前言flag 库FlagSet需求拆解实现 weather flag天气数据打印获取源数据数据转换运行效果小结前言Golang 标准库中的 flag 库提供了解析命令行选项的能力,我们可以基于此来...

一文解析 Golang sync.Once 用法及原理

目录前言1. 定位2. 对外接口3. 实战用法3.1 初始化3.2 单例模式3.3 关闭channel4. 原理5. 避坑前言在此前一篇文章中我们了解了 Golang Mutex 原理解析,今天来看一个官方给出...

go语言 nil使用避坑指南

目录引言nil默认值nil (重点记住)nil没有默认类型不同类型的nil值占用的内存大小可能是不一样的不同类型 nil 的指针是一样的不同类型的 nil 是不能比较的引言今天笔试题遇...

Go语言开发保证并发安全实例详解

目录什么是并发安全?Mutex悲观锁乐观锁版本号机制CAS互斥锁读写互斥锁什么是并发安全?在高并发场景下,进程、线程(协程)可能会发生资源竞争,导致数据脏读、脏写、死锁等问题,为了避...

返回顶部
顶部