
go
golang
雨夜潜行
这个作者很懒,什么都没留下…
展开
-
gorm 输出sql到文件
最近写项目的时候碰到个问题需要sql调出来看看,然后发现sql被淹没了 ,后面想着把sql输出到文件里这样就不会淹没了,主要是注册gorm的时候用自定义的打印方法 由于他源码是调用的本身自带的Printf方法,所以很简单,自己创建个就好了。原创 2023-01-04 17:44:56 · 1695 阅读 · 1 评论 -
跟着阿昌学习day3-【go基础知识】Content(上下文)探究
go基础知识原创 2022-09-18 00:28:45 · 762 阅读 · 0 评论 -
跟着阿昌学习day2-【go基础知识】结构体比较
go基础知识原创 2022-09-16 22:33:17 · 1203 阅读 · 0 评论 -
跟着阿昌学习day1-【docker入门】代码打包运行
docker入门原创 2022-09-15 23:54:49 · 756 阅读 · 0 评论 -
【docker入门】docker 安装本地环境
docker入门原创 2022-08-19 07:38:33 · 992 阅读 · 0 评论 -
go 内存逃逸
接触go后就经常碰到一个概念 就是内存逃逸,今天就来分析一下内存逃逸一:什么叫内存逃逸首先go的变量要不在栈上要不在堆上,栈上的变量会在函数销毁的时候就释放了,堆上的就要靠gc算法来了,我们一般说从栈逃逸到堆上或者一开始直接就在堆上的变量内存叫做内存逃逸二:什么时候会内存逃逸 引起内存逃逸的关键就是,编译器在编译的时候无法确定确定变量的生命周期,只能在运行时控制了函数返回了局部变量的指针 发送指针或者带有指针的数据进channel 在切片上存储指针或...原创 2022-04-28 17:29:20 · 2736 阅读 · 1 评论 -
gorm自定义语句 (自定义字段相等之类的)
最近开发时碰到个要给一个字段赋值为另一个字段的值 但是直接些的时候总数会产生引号,找了很久发现gorm有gorm.Expr可以原生的展示需要的语句 所有就愉快的解决了原创 2022-04-22 12:12:12 · 599 阅读 · 0 评论 -
go csp 并发 channel 通道方案
自从转go后 经常看到go提倡的csp处理并发,一直没有太了解,一是没有碰到对应的需求,二是网上搜csp并发都是些概念,有代码示例的少之又少,不过里一直有个疙瘩,这个csp并发到底是咋回事,最近花了点时间了解了下,下面的代码一看就能看懂了package mainimport ( "fmt")func main() { // 创建3个channel,A,B和Exit A := make(chan bool) B := make(chan bool) Exi...原创 2022-02-28 09:25:55 · 229 阅读 · 0 评论 -
go泛型出来前怎么写通用的方法
go没有泛型一直以来都为人诟病,好在go的泛型已经接近完成了 最快在1.18版本就要正式出来了(有点小激动),那么在泛型没出来前要怎么写通用的方法呢,相信大家都经常碰到过明明需要的功能都差不多 就是因为里面的类型是string 和 int不同,硬是要写两个方法,感觉这样非常不优雅且方便,于是研究了下通过反射可以实现类似泛型的功能(当然指常见的) 话不多说上代码// 数组转字符串 (泛型出来前准备) ps:[1,2,3,4] => 1,2,3,4func ArrayToString(arr i原创 2022-01-27 17:45:10 · 344 阅读 · 0 评论 -
go range 遍历为啥是乱序的
最近碰到map遍历无序的问题,感觉有点坑,后面感觉不管怎么样的储存结构,存进去了顺序应该就定死了的,不至于会变,然后在学习的过程中发现这是因为map的结构扩容会导致数据顺序与扩容前不同,也就是说如果你数据是不动的,那理论上遍历顺序也是一样的,但是因为有这个扩容情况存在,导致go的团队直接将map的遍历改成随机了,直接杜绝了程序员依赖遍历顺序的这种情况...原创 2022-01-12 17:24:40 · 865 阅读 · 0 评论 -
go 并发锁的方法
直接上代码var wg sync.WaitGroupwg.Wait()wg.Add(1)defer wg.Add(-1)一开始是这么想的 因为go宣传用csp处理并发所以就想着用协程等待的方法实现,后面感觉如果同事进入wait方法还是有bug的 ,于是开始找cas锁,最后发现go的核心库是有这个并发锁的 愉快的使用了var lock sync.Mutexlock.Lock()defer lock.Unlock()...原创 2022-01-12 17:12:45 · 402 阅读 · 0 评论 -
golang 返回有序json字段
最近写go语言的时候发现返回的json数据总是排好序了的,对于特定的需求这个有点麻烦,后面研究发现map结构json的时候有进行排序因为急着用 就先用了二维切片先返回了,后面发现map遍历的时候是无序的 可能因为这个原因就导致json的时候排序了 下面介绍方法了方法也很简单 就是用结构体转json 这时候结构就还是结构体的顺序// 创建结构体 type person struct { Bc int Abc int D int C int ...原创 2021-12-02 18:21:13 · 1506 阅读 · 0 评论 -
go 中 结构体 map互转
go中用gorm查询的时候往往会用到结构体来定义返回的列表 但是有时候需要拓展字段返回的时候就会觉得很麻烦了 研究了下发现通过转json可以实现结构体和map的互转 代码如下 // 结构体转map param是需要转换的结构体 var PosOrders map[string]interface{} str, _ := json.Marshal(param) _ = json.Unmarshal([]byte(str), &PosOrders) // map转结构......原创 2021-11-29 15:52:48 · 1695 阅读 · 0 评论