![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
golang
被偷走的岁月
这个作者很懒,什么都没留下…
展开
-
gorm日记
1、更新时0值或空值被忽略处理(使用map) data := make(map[string]interface{}) data["store_name"]="" data["store_addr"]="" data["avg_pay"]=0 data["tel"]="" data["business_hours"]="" err = tx.Table("ft_ad_attached").Where("ad_id = ?", ad.Id).Update(data).Error原创 2021-06-02 10:43:21 · 96 阅读 · 0 评论 -
Tips
当数值会越界时:if t < 0 { t = 1<<63 - 1 // math.MaxInt64 }原创 2021-05-12 16:35:14 · 61 阅读 · 0 评论 -
golang中slice的扩容机制
在golang中slice是一个指向数组的指针结构体。 这个结构体有三个属性:指向数组指针 len: slice中元素的数量 cap:slice占用内存数量其概念为"动态数组",及数组的容量大小(cap)会随着数组的实际大小(size)变化而变化(扩容)。扩容机制:如果切片的容量小于1024个元素,那么扩容的时候slice的cap就翻番,乘以2;一旦元素个数超过1024个元素,则乘以1.25,即每次增加原来容量的四分之一。拷贝问题:slice的拷贝属于引用拷贝。拷贝后的slic原创 2021-03-02 14:41:06 · 1177 阅读 · 0 评论 -
golang的锁
一、为什么需要锁举例:有一个变量4,有两个协程对这个变量执行+1操作。如果没有锁,那么这两个协程可能同时读,结果都是读到4去执行+1操作,最后的结果是5。锁的作用:在并发的情况下,多个线程或协程同时去修改一个变量。使用锁能保证在某一时间点内,只有一个协程或线程修改这一变量。其实就是抢锁,抢到锁的才能进行操作。二、互斥锁 Mutex互斥锁有两个方法:加锁、解锁。一个互斥锁只能同时被一个 goroutine 锁定,其它 goroutine 将阻塞直到互斥锁被解锁(重新争抢对互斥锁的锁定)原创 2021-02-25 17:17:17 · 215 阅读 · 0 评论 -
golang下载与安装
golang下载官方下载地址:https://golang.org/dl/由于官方地址被墙,推荐go语言中文网下载:https://studygolang.com/dlgolang安装安装过程就是点点点,没啥好说的。安装位置,我的在D:\go1.14环境变量配置:设置变量名GOROOT,变量值D:\go1.14(安装目录)修改系统变量Path,添加D:\go1.14\bin (windows安装以后会自动添加)安装完成以后命令行输入go version查看版本:C:\U原创 2021-02-25 14:53:50 · 462 阅读 · 0 评论