之前的文章都是一种无状态的请求,在处理有状态的请求时,如用户登录的场景就不行了,web系统通常使用cookie或者session来记录用户状态,本文记录一下gin框架下cookie与session的使用。 读取cookie 在gin.Con...
go
使用gin搭建api后台系统之中间件开发
在之前的文章中,基本上都是使用的默认的 gin.Default() 来初始化一个引擎,之后再调用引擎的Run方法来运行一个web服务,现在如果有个需求,某些api只有管理员权限的才可以进行访问,非管理员的就很401,我们可以...
使用gin搭建api后台系统之redis
redis 在web系统中有着非常重要的地位,可以充当缓存,消息队列,分步式锁等,本文介绍一下使用go-redis这个库来简单地操作redis。 环境准备 使用docker 本地启一个redis docker run --name myredis -p 63...
golang中map与切片的函数传参
在golang 的函数参数,如果参数是值类型的话,如果在函数中修改参数值是不会影响原变量的,因为在函数操作中是会进行一次值拷贝的,如果希望函数的修改影响原变量,则需要传指针方式。如以下代码,是不会改变原变...
golang中的锁
在golang中,goroutine 可以理解为其它语言中的线程,在其它语言中存在的数据竞态的问题,在golang中同样存在 本文记录一下数据竞态与各种锁的使用 race condition 竞争状态 这个词也没有听起来很高大上,...
golang中锁Mutex与通道channel的选择
Mutex和channel 都可以在并发环境下对资源进行保护,避免竞态, channel 在 golang 中一直被追捧,但是既然都能解决问题,但为什么还要弄两个东西呢? 查阅一些文章,发现有些时候对于channel过于追捧了。有时...
golang中的strings.Contains
golang中的字符串操作strings.Contains package main import ( "fmt" "strings" ) //golang字符串操作 func main(){ s := "hello world hello world" str := ...
gorm join 多表重复字段as
产品模型 type ProductAttribute struct { Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` Name string `json:"name" gorm:"column:name"` // 名...
推荐Go语言库,加速您的项目开发进程七
本文章向大家介绍每日一库之 go-carbon,优雅的golang日期时间处理库,主要内容包括安装使用、用法示例、附录、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文...
go语言实现一个简单的原子互斥操作
go语言实现一个简单的原子互斥操作 package main import ( "fmt" "sync" ) var total struct { //指定一个结构体声明一个sync.Mutex类型. sync.Mutex value int } func worker(wg *syn...