golang struct, map, json之间的相互转换
目录公共代码区域
一、map, struct 互转
1.map 转 struct2、struct 转 map
二、struct, json 互转
三、map, json 互转
1.map 转 json
2.json 转 map
总结本文用于记录我在...
目录公共代码区域
一、map, struct 互转
1.map 转 struct2、struct 转 map
二、struct, json 互转
三、map, json 互转
1.map 转 json
2.json 转 map
总结本文用于记录我在...
目录关于 Excelize 库
性能对比
安装
创建 Excel 文档
实际场景复现
创建工作表
删除默认创建的工作表
合并单元格
单元格样式
文字水平居中
给单元格设置纯色填充
Style 结...
前文回顾
前面的文章主要介绍了 Go 语言中提供了 list 列表和 Map 映射关系容器,这两种容器都是我们日常经常使用到的。介绍了好多种的 Go 语言提供的基础容器,免不了要查询容...
目录遍历结构体
遍历切片
遍历MapGolang json序列化(struct,int,map,slice)遍历结构体
如何实现遍历结构体字段? 好吧,言归正传!举个例子:
demo1:package mainimport ( "fmt"...
目录实现加权轮询负载均衡思路
加权轮询负载均衡代码
测试代码
实现加权轮询负载均衡思路
代码实现一个加权负载均衡 Weight 初始化时对节点约定的权重 cu...
目录一、defer二、错误处理三、统一错误处理的逻辑四、panic五、recover六、error vs panic七、错误处理综合示例一、defer1. defer保证在函数结束时发生.2. defer列表为先...
基于 RSA 加密算法的接口鉴权方案
假设接口调用者是客户端,接口提供方是服务端,则此方案存在以下规则: 客户端需要使用 RSA 算法(1024 位长度的私钥)生成公私钥,并将公钥下发给...
前言select作为Go chan通信的重要监听工具,有着很广泛的使用场景。select的使用主要是搭配通信case使用,表面上看,只是简单的select及case搭配,实际上根据case的数量及类型,在编...
前言很多时候我们都在window上使用goland,并直接使用goland调试go代码。
但是很多时候我们的程序运行在Linux服务器上,虽然可以通过dlv命令行进行手动打断点调试,但是太麻烦了...
一 目录结构二 前端页面文件名:login.html<!DOCTYPE html><html><head> <title></title></head><body><form action="/login" method="post"> 用户名:<input type="tex...
我们知道 Golang 切片(slice) 在容量不足的情况下会进行扩容,扩容的原理是怎样的呢?是不是每次扩一倍?下面我们结合源码来告诉你答案。一、源码
Version : go1.15.6 src/runtime...
目录一、多态的含义二、抽象类与接口三、Golang中的接口四、总结一、多态的含义对于Java或者是C++而言,我们在使用变量的时候,变量的类型是明确的。但是如果我们希望它可以宽...
目录负载均衡简介随机负载均衡测试 随机负载均衡负载均衡简介从设备角度实现负载均衡:硬件负载均衡:由专门的 负载均衡器 服务提供商,在你的服务器和外部网络之间架设 服务商的...
目录一、组合模式(Composite Pattern)1.1、简述1.2、Go实现二、适配器模式(Adapter Pattern)2.1、简述2.2、Go实现三、桥接模式(Bridge Pattern)3.1、简述3.2、Go实现四、总结一、...
目录一、前言二、开闭原则三、依赖倒置原则3.1、什么是依赖倒置原则 3.2、一个耦合度极高的模块关系设计3.3、面向抽象层依赖倒转一、前言go的interface写起来更自由, 无...
目录介绍 Casbin 是什么?两个核心概念:工作原理:实战初始化数据库用户权限的增删改查总代码封装后的代码参考
本文主要介绍了go语言使用Casbin实现角色的权限控制,分享给大家,具...
goroutine 是 Go语言中的轻量级线程实现,由 Go 运行时(runtime)管理。Go 程序会智能地将 goroutine 中的任务合理地分配给每个 CPU。01介绍Golang 语言的优势之一是天生支持并...
前言通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异常,于是Go这里直接把异常这一块给砍掉了,最终还是通过返回值来判断程序的异常情况,毕竟Go可是支持多返回值的语...
目录一 点睛二 先看一个转义的例子三 使用 text/template 进行处理四 使用 html/template 进行处理一 点睛现在的网站包含大量的动态内容以提高用户体验,比过去要复杂得多。...
目录一、并发实现模型1.1、多进程1.2、多线程1.3、协程二、共享内存与CSP三、Goroutine一、并发实现模型1.1、多进程在之前的文章当中我们曾经介绍过,进程是操作系统资源分配...
随机负载随机挑选目标服务器package load_balanceimport ( "errors" "math/rand")//随机负载均衡type RandomBalance struct { curIndex int rss []string}func (r *RandomB...
前情提要
最近看很多教程或者说博客上都说 golang 中的 slice、map、channel、func 都是“引用传递”,然而一方面又说 golang 中所有类型都是值传递,总感觉有些云里雾里的,于是...
介绍
HTTPS (Secure Hypertext Transfer Protocol)安全超文本传输协议,是一个安全通信通道,它基于HTTP开发用于在客户计算机和服务器之间交换信息。它使用安全套接字层(SSL)进...
目录介绍
雪花算法
UUID
数据库自增主键Redis
Snowflake
实现原理
代码实现
实现步骤
代码实现
每次放长假的在家里的时候,总想找点简单的例子来看看实现原理,这次我们来看看...
目录前言实现接口的设计内部实现测试一下优化再测试一下补充遗憾前言总所周知,go 里面只有两种 channel,一种是 unbuffered channel, 其声明方式为ch := make(chan interface{...
ORM 框架ORM:Object Relational Mapping —— 对象关系映射。作用: 通过操作结构体对象,来达到操作数据库表的目的。 通过结构体对象,来生成数据库表。优点: SQL有...
目录1. 数组
2. 切片(Slice)
append 函数
总结1. 数组
数组是一个由固定长度的特定类型元素组成的序列,一个数组可以由零个或多个元素组成。因为数组的长度是固定的,因此在 Go...
WaitGroup 用于线程同步,很多场景下为了提高并发需要开多个协程执行,但是又需要等待多个协程的结果都返回的情况下才进行后续逻辑处理,这种情况下可以通过 WaitGroup 提供的方...
len是很常用的内置函数,可以测量字符串、slice、array、channel以及map的长度/元素个数。不过你真的了解len吗?也许还有一些你不知道的小知识。我们来看一道GO101的题目,这题也...
本文主要针对Golang的内置库 net/http 做了简单的扩展,通过添加中间件的形式实现了管道(Pipeline)模式,这样的好处是各模块之间是低耦合的,符合单一职责原则,可以很灵活的通过中...
本文主要针对Golang的内置库 net/http 做了简单的扩展,通过添加中间件的形式实现了管道(Pipeline)模式,这样的好处是各模块之间是低耦合的,符合单一职责原则,可以很灵活的通过中...
本文的完整代码在github.com/hdt3213/godis/redis/client通常 TCP 客户端的通信模式都是阻塞式的: 客户端发送请求 -> 等待服务端响应 -> 发送下一个请求。因为需要等待网络...
目录1、问题
2、问题修复
3、总结
1、问题
最近接手一个商城运单号模块,接手后发现有部分运单号返回给前端是按照科学计数法的方式返回,如:8.0497183772403904E+17,后查库发现这...
目录一、为什么要配置文件二、在go中使用配置文件三、使用结构体的方式读取四、区分开发环境和生产环境五、在gin中集成配置文件一、为什么要配置文件1、容易编辑,配置比较集...
目录什么是指针
指针的声明和定义
var 关键字声明
new 函数声明
指针的操作
指针参数
指针接收者什么情况下使用指针什么是指针
我们都知道,程序运行时的数据是存放在内存中...
目录什么时候会导致死锁
发送单个值时的死锁
多个值发送的死锁
解决多值发送死锁
应该先发送还是先接收
goroutine 泄漏
如何发现泄露
小结
什么时候会导致死锁
在计算机组...
异常处理 程序运行时,发生的不被期望的事件,它阻止了程序按照程序员的预期正常执行,这就是异常 golang中提供了两种处理异常的方式 一种是程序发生异常时, 将...
Go语言项目中基本上都是以源码的形式提供包,对公司或者企业而言,如果想要隐藏关键代码怎么办?
我们可以将Go的非main包编译为静态库提供给用户使用。下面以Windows为例,介绍一下...
1. 前言channel一个类型管道,通过它可以在goroutine之间发送和接收消息。它是Golang在语言层面提供的goroutine间的通信方式。Channel是Go中的一个核心类型,你可以把它看成一...
使用channel实现协程池通过 Channel 实现 Goroutine Pool,缺点是会造成协程的频繁开辟和注销,但好在简单灵活通用。package mainimport ( "fmt" "io/ioutil" "net/http" "syn...
目录什么是 RESTful API
一个简单的 RESTful API
RESTful JSON API
Gin 框架
引入 Gin 框架
使用 Gin 框架
新增一个用户
获取特定的用户
总结
在实际开发项目中,你编写的服...
目录1. 常见的编码
2. go语言实现base64的编码与解码
2.1 Base64编码原理
2.2 实现Base64的编码与解码
3. go语言实现base58编码与解码
3.1 base58的编码过程3.2 base58编解...
目录简介
快速使用
格式
时区
cli
总结
参考简介
不管什么时候,处理时间总是让人头疼的一件事情。因为时间格式太多样化了,再加上时区,夏令时,闰秒这些细枝末节处理起来更是困难...
程序运算时往往需要数据,而数据的IO又往往需要时间传输,而常见的串行处理,是一个任务处理完成才接着处理新的任务, 其效率低下可想而知。 假如有3个任务要处理,而每个任务都有一...
1. 前言上一篇介绍了 Go并发控制--Channel使用channel来控制子协程的优点是实现简单,缺点是当需要大量创建协程时就需要有相同数量的channel,而且对于子协程继续派生出来的协...
Error是Go语言开发中最基础也是最重要的部分,跟其他语言的try catch的作用基本一致,想想在PHP JAVA开发中,try catch 不会使用,或者使用不灵活,就无法感知到程序运行中出现了什么...
最近为了做Hyperledger Fabric国密改造,涉及到了golang源码的改动。特将操作过程整理如下,以供参考:golang的源码安装其实比较简单,只需运行源码包中的脚本src/all.bash,等到出现...
普通指针 和C语言一样, 允许用一个变量来存放其它变量的地址, 这种专门用于存储其它变量地址的变量, 我们称之为指针变量 和C语言一样, Go语言中的指针无论是什么类型...
目录简介
快速使用
语法结构
变量
调用函数
Web
总结
参考简介
最近在整理我们项目代码的时候,发现有很多活动的代码在结构和提供的功能上都非常相似。为了方便今后的开发,我...