golang
golang学习
@parkhyomin
这个作者很懒,什么都没留下…
展开
-
golang格式化输出
%d int变量%x, %o, %b 分别为16进制,8进制,2进制形式的int%f, %g, %e 浮点数: 3.141593 3.141592653589793 3.141593e+00%t 布尔变量:true 或 false%c rune (Unicode码点),Go语言里特有的Unicode字符类型%s string%q 带双引号的字符串 “abc” 或 带单引号的 rune ‘c’%v 会将任意变量以易读的形式打印出来%T 打印变量的类型%% 字符型百分比标志(%符号本身,没有其原创 2020-10-16 15:19:03 · 369 阅读 · 1 评论 -
golang gorm 解决mysql sum函数列有null时 报错 sconverting NULL to int64 is unsupported
当我们查询orders表order_amount字段的和时,如果order_amount字段有null值,则gorm会报错sql: Scan error on column index 0, name "sum(order_amount)": converting NULL to int64 is unsupportedvar price int64db.Table("orders").Select("sum(order_amount)").Scan(&price)解决方法: 使用gorm的原创 2020-10-16 14:50:11 · 3999 阅读 · 1 评论 -
golang gorm 分页查询
编写一个分页查询的通用逻辑, page参数页数 pageSize参数为每页显示数量//分页封装func Paginate(page int,pageSize int) func(db *gorm.DB) *gorm.DB { return func (db *gorm.DB) *gorm.DB { if page == 0 { page = 1 } switch { case pageSize > 100: pageSize = 100 case.原创 2020-10-12 14:51:51 · 4714 阅读 · 0 评论 -
golang gin解决跨域
编写一个中间件package middlewareimport ( "github.com/gin-gonic/gin" "net/http")// 处理跨域请求,支持options访问func Cors() gin.HandlerFunc { return func(c *gin.Context) { method := c.Request.Method c.Header("Access-Control-Allow-Origin", "*") // 可将将 * 替换为指定的原创 2020-10-12 12:21:59 · 975 阅读 · 0 评论 -
golang gin框架全局捕获500和404
需求:gin服务器抛出的任何异常都不会导致服务停止,所有未知异常统一返回自定义提示消息及状态码全局捕获500封装一个中间件,创建的gin的router时使用该中间件package mainimport ( "github.com/gin-gonic/gin" "log" "runtime/debug")func Recover(c *gin.Context) { defer func() { if r := recover(); r != nil { //打印错误堆原创 2020-08-18 16:44:47 · 3893 阅读 · 0 评论 -
golang使用bcrypt加密算法进行密码的加密与校验
bcrypt加密算法简单介绍对于同一个密码,每次生成的hash不一样这里写自定义目录标题bcrypt加密算法简单介绍欢迎使用Markdown编辑器新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入欢迎使用Markdown原创 2020-08-18 16:16:58 · 2736 阅读 · 0 评论 -
golang go-redis incr用法及过期时间设置
go-redis库设置incr 过期时间使用Multi/exec,Redis是单线程的,因此单个命令始终是原子的,但是来自不同客户端的两个给定命令可以依次执行,例如在它们之间交替执行。但是,Multi/exec能够确保在multi/exec两个语句之间的命令之间没有其他客户端正在执行命令。package mainimport ( "fmt" "github.com/go-redis/redis" _ "github.com/jinzhu/gorm/dialects/mysql" "time"原创 2020-08-03 12:53:10 · 5658 阅读 · 0 评论