golang struct, map, json之间的相互转换

目录公共代码区域
一、map, struct 互转
1.map 转 struct2、struct 转 map
二、struct, json 互转
三、map, json 互转
1.map 转 json
2.json 转 map
总结本文用于记录我在...

Golang生成Excel文档的方法步骤

目录关于 Excelize 库
性能对比
安装
创建 Excel 文档
实际场景复现
创建工作表
删除默认创建的工作表
合并单元格
单元格样式
文字水平居中
给单元格设置纯色填充
Style 结...

Go 容器遍历的实现示例

前文回顾
前面的文章主要介绍了 Go 语言中提供了 list 列表和 Map 映射关系容器,这两种容器都是我们日常经常使用到的。介绍了好多种的 Go 语言提供的基础容器,免不了要查询容...

Go遍历struct,map,slice的实现

目录遍历结构体
遍历切片
遍历MapGolang json序列化(struct,int,map,slice)遍历结构体
如何实现遍历结构体字段? 好吧,言归正传!举个例子:
demo1:package mainimport ( "fmt"...

Golang加权轮询负载均衡的实现

目录实现加权轮询负载均衡思路
加权轮询负载均衡代码
测试代码
实现加权轮询负载均衡思路
代码实现一个加权负载均衡 Weight 初始化时对节点约定的权重 cu...

详解Go语言的错误处理和资源管理

目录一、defer二、错误处理三、统一错误处理的逻辑四、panic五、recover六、error vs panic七、错误处理综合示例一、defer1. defer保证在函数结束时发生.2. defer列表为先...

Go实现基于RSA加密算法的接口鉴权

基于 RSA 加密算法的接口鉴权方案
假设接口调用者是客户端,接口提供方是服务端,则此方案存在以下规则: 客户端需要使用 RSA 算法(1024 位长度的私钥)生成公私钥,并将公钥下发给...

go select编译期的优化处理逻辑使用场景分析

前言select作为Go chan通信的重要监听工具,有着很广泛的使用场景。select的使用主要是搭配通信case使用,表面上看,只是简单的select及case搭配,实际上根据case的数量及类型,在编...

使用goland调试远程代码的操作步骤

前言很多时候我们都在window上使用goland,并直接使用goland调试go代码。
但是很多时候我们的程序运行在Linux服务器上,虽然可以通过dlv命令行进行手动打断点调试,但是太麻烦了...

go web 处理表单的输入的说明

一 目录结构二 前端页面文件名:login.html<!DOCTYPE html><html><head> <title></title></head><body><form action="/login" method="post"> 用户名:<input type="tex...

浅谈Golang 切片(slice)扩容机制的原理

我们知道 Golang 切片(slice) 在容量不足的情况下会进行扩容,扩容的原理是怎样的呢?是不是每次扩一倍?下面我们结合源码来告诉你答案。一、源码
Version : go1.15.6 src/runtime...

浅谈Go语言多态的实现与interface使用

目录一、多态的含义二、抽象类与接口三、Golang中的接口四、总结一、多态的含义对于Java或者是C++而言,我们在使用变量的时候,变量的类型是明确的。但是如果我们希望它可以宽...

Golang 实现简单随机负载均衡

目录负载均衡简介随机负载均衡测试 随机负载均衡负载均衡简介从设备角度实现负载均衡:硬件负载均衡:由专门的 负载均衡器 服务提供商,在你的服务器和外部网络之间架设 服务商的...

Go语言设计模式之结构型模式

目录一、组合模式(Composite Pattern)1.1、简述1.2、Go实现二、适配器模式(Adapter Pattern)2.1、简述2.2、Go实现三、桥接模式(Bridge Pattern)3.1、简述3.2、Go实现四、总结一、...

分析Go语言接口的设计原则

目录一、前言二、开闭原则三、依赖倒置原则3.1、什么是依赖倒置原则  3.2、一个耦合度极高的模块关系设计3.3、面向抽象层依赖倒转一、前言go的interface写起来更自由, 无...

go语言使用Casbin实现角色的权限控制

目录介绍 Casbin 是什么?两个核心概念:工作原理:实战初始化数据库用户权限的增删改查总代码封装后的代码参考
本文主要介绍了go语言使用Casbin实现角色的权限控制,分享给大家,具...

Golang 语言控制并发 Goroutine的方法

goroutine 是 Go语言中的轻量级线程实现,由 Go 运行时(runtime)管理。Go 程序会智能地将 goroutine 中的任务合理地分配给每个 CPU。01介绍Golang 语言的优势之一是天生支持并...

Golang中异常处理机制详解

前言通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异常,于是Go这里直接把异常这一块给砍掉了,最终还是通过返回值来判断程序的异常情况,毕竟Go可是支持多返回值的语...

go web 预防跨站脚本的实现方式

目录一 点睛二 先看一个转义的例子三 使用 text/template 进行处理四 使用 html/template 进行处理一 点睛现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。...

分析Go语言中CSP并发模型与Goroutine的基本使用

目录一、并发实现模型1.1、多进程1.2、多线程1.3、协程二、共享内存与CSP三、Goroutine一、并发实现模型1.1、多进程在之前的文章当中我们曾经介绍过,进程是操作系统资源分配...

Golang实现四种负载均衡的算法(随机,轮询等)

随机负载随机挑选目标服务器package load_balanceimport ( "errors" "math/rand")//随机负载均衡type RandomBalance struct { curIndex int rss []string}func (r *RandomB...

golang中对"引用传递"的误解

前情提要
最近看很多教程或者说博客上都说 golang 中的 slice、map、channel、func 都是“引用传递”,然而一方面又说 golang 中所有类型都是值传递,总感觉有些云里雾里的,于是...

Golang简单实现http的server端和client端

介绍
HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进...

Go语言实现Snowflake雪花算法

目录介绍
雪花算法
UUID
数据库自增主键Redis
Snowflake
实现原理
代码实现
实现步骤
代码实现
每次放长假的在家里的时候,总想找点简单的例子来看看实现原理,这次我们来看看...

再次探讨go实现无限 buffer 的 channel方法

目录前言实现接口的设计内部实现测试一下优化再测试一下补充遗憾前言总所周知,go 里面只有两种 channel,一种是 unbuffered channel, 其声明方式为ch := make(chan interface{...

gORM操作MySQL的实现

ORM 框架ORM:Object Relational Mapping —— 对象关系映射。作用: 通过操作结构体对象,来达到操作数据库表的目的。 通过结构体对象,来生成数据库表。优点: SQL有...

简单聊一聊Go语言中的数组和切片

目录1. 数组
2. 切片(Slice)
append 函数
总结1. 数组
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,因此在 Go...

Golang 标准库 tips之waitgroup详解

WaitGroup 用于线程同步,很多场景下为了提高并发需要开多个协程执行,但是又需要等待多个协程的结果都返回的情况下才进行后续逻辑处理,这种情况下可以通过 WaitGroup 提供的方...

golang内置函数len的小技巧

len是很常用的内置函数,可以测量字符串、slice、array、channel以及map的长度/元素个数。不过你真的了解len吗?也许还有一些你不知道的小知识。我们来看一道GO101的题目,这题也...

在 Golang 中实现一个简单的Http中间件过程详解

本文主要针对Golang的内置库 net/http 做了简单的扩展,通过添加中间件的形式实现了管道(Pipeline)模式,这样的好处是各模块之间是低耦合的,符合单一职责原则,可以很灵活的通过中...

Golang中实现简单的Http Middleware

本文主要针对Golang的内置库 net/http 做了简单的扩展,通过添加中间件的形式实现了管道(Pipeline)模式,这样的好处是各模块之间是低耦合的,符合单一职责原则,可以很灵活的通过中...

Golang 实现 Redis系列(六)如何实现 pipeline 模式的 redis 客户端

本文的完整代码在github.com/hdt3213/godis/redis/client通常 TCP 客户端的通信模式都是阻塞式的: 客户端发送请求 -> 等待服务端响应 -> 发送下一个请求。因为需要等待网络...

Golang科学计数法转换string数字输出的实现

目录1、问题
2、问题修复
3、总结
1、问题
最近接手一个商城运单号模块,接手后发现有部分运单号返回给前端是按照科学计数法的方式返回,如:8.0497183772403904E+17,后查库发现这...

go项目中环境变量的配置

目录一、为什么要配置文件二、在go中使用配置文件三、使用结构体的方式读取四、区分开发环境和生产环境五、在gin中集成配置文件一、为什么要配置文件1、容易编辑,配置比较集...

Go语言应该什么情况使用指针

目录什么是指针
指针的声明和定义
var 关键字声明
new 函数声明
指针的操作
指针参数
指针接收者什么情况下使用指针什么是指针
我们都知道,程序运行时的数据是存放在内存中...

Go语言死锁与goroutine泄露问题的解决

目录什么时候会导致死锁
发送单个值时的死锁
多个值发送的死锁
解决多值发送死锁
应该先发送还是先接收
goroutine 泄漏
如何发现泄露
小结
什么时候会导致死锁
在计算机组...

Go语言异常处理案例解析

异常处理 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常 golang中提供了两种处理异常的方式 一种是程序发生异常时, 将...

Go语言非main包编译为静态库并使用的示例代码

Go语言项目中基本上都是以源码的形式提供包,对公司或者企业而言,如果想要隐藏关键代码怎么办?
我们可以将Go的非main包编译为静态库提供给用户使用。下面以Windows为例,介绍一下...

Go并发控制Channel使用场景分析

1. 前言channel一个类型管道,通过它可以在goroutine之间发送和接收消息。它是Golang在语言层面提供的goroutine间的通信方式。Channel是Go中的一个核心类型,你可以把它看成一...

GO实现协程池管理的方法

使用channel实现协程池通过 Channel 实现 Goroutine Pool,缺点是会造成协程的频繁开辟和注销,但好在简单灵活通用。package mainimport ( "fmt" "io/ioutil" "net/http" "syn...

基于Go语言构建RESTful API服务

目录什么是 RESTful API
一个简单的 RESTful API
RESTful JSON API
Gin 框架
引入 Gin 框架
使用 Gin 框架
新增一个用户
获取特定的用户
总结
在实际开发项目中,你编写的服...

Go语言实现Base64、Base58编码与解码

目录1. 常见的编码
2. go语言实现base64的编码与解码
2.1 Base64编码原理
2.2 实现Base64的编码与解码
3. go语言实现base58编码与解码
3.1 base58的编码过程3.2 base58编解...

Go语言运算符案例讲解

算数运算符 算数运算符和C语言几乎一样 运算符 描述 实例 + 相加...

Go每日一库之dateparse处理时间

目录简介
快速使用
格式
时区
cli
总结
参考简介
不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难...

golang的串行处理和并行处理区别

程序运算时往往需要数据,而数据的IO又往往需要时间传输,而常见的串行处理,是一个任务处理完成才接着处理新的任务, 其效率低下可想而知。 假如有3个任务要处理,而每个任务都有一...

Go并发控制WaitGroup的使用场景分析

1. 前言上一篇介绍了 Go并发控制--Channel使用channel来控制子协程的优点是实现简单,缺点是当需要大量创建协程时就需要有相同数量的channel,而且对于子协程继续派生出来的协...

浅析golang开发Error的使用详解

Error是Go语言开发中最基础也是最重要的部分,跟其他语言的try catch的作用基本一致,想想在PHP JAVA开发中,try catch 不会使用,或者使用不灵活,就无法感知到程序运行中出现了什么...

修改并编译golang源码的操作步骤

最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动。特将操作过程整理如下,以供参考:golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现...

Go语言指针使用分析与讲解

普通指针 和C语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量 和C语言一样, Go语言中的指针无论是什么类型...

Go每日一库之quicktemplate的使用

目录简介
快速使用
语法结构
变量
调用函数
Web
总结
参考简介
最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我...

返回顶部
顶部