【golang】
神以灵
渴望成为前端大神的一个noob~~~
(https://github.com/shenyiling)
展开
-
golang使用channel传递信号
使用channel在goroutines中传递信号在go里,使用channel在goroutines间交流数据是一个很好的方式,但是也可以使用它去传递信号。传递信号时,使用空的struct作为channel的类型,只表示信息传递。更有趣的是,它不会占用内存空间,一个空的struct没有任何的属性。你可以到这里查看这是一个信号channel:var signal chan struct{}可以使用go的内置make函数初始化它:signal := make(chan struct{})代码会原创 2020-05-29 09:31:21 · 1922 阅读 · 0 评论 -
【Golang】gorm添加数据库排他锁,for update
适用于先读后更新的数据竞争场景,且应该将加锁操作放到事务中,防止锁被自动释放,原因参考mysql docsfunc UpdateUser(db *gorm.DB, id int64) error { tx := db.Begin() defer func() { if r := recover(); r != nil { tx.Roll...原创 2020-02-25 18:14:27 · 15617 阅读 · 0 评论 -
GO语言基础进阶教程:bufio包
原文链接:https://zhuanlan.zhihu.com/p/73690883 作者:茹姐生命不止,继续Go go go。。Go语言在io操作中,还提供了一个bufio的包,使用这个包可以大幅提高文件读写的效率。一、bufio包原理bufio 是通过缓冲来提高效率。io操作本身的效率并不低,低的是频繁的访问本地磁盘的文件。所以bufio就提供了缓冲区(分配一块内存),读和写都先...转载 2020-02-24 09:21:04 · 628 阅读 · 0 评论 -
【Go 专家编程】go.mod 文件中的indirect准确含义
原文链接:https://my.oschina.net/renhc/blog/3162751 作者:恋恋美食在使用 Go module 过程中,随着引入的依赖增多,也许你会发现go.mod文件中部分依赖包后面会出现一个// indirect的标识。这个标识总是出现在require指令中,其中// 与代码的行注释一样表示注释的开始,indirect表示间接的依赖。比如开源软件 Kuberne...转载 2020-02-22 12:00:48 · 32870 阅读 · 1 评论 -
【Golang】计算两个地理坐标之间的距离
package mainimport ( "fmt" "math")// 球面距离公式:https://baike.baidu.com/item/%E7%90%83%E9%9D%A2%E8%B7%9D%E7%A6%BB%E5%85%AC%E5%BC%8F/5374455?fr=aladdin// GeoDistance 计算地理距离,依次为两个坐标的纬度、经度、单位(默认:英里,K...原创 2020-02-18 16:50:29 · 3631 阅读 · 0 评论 -
【Golang】echo框架获取二进制数据body,content-type:application/octet-stream
r := c.Request() // c: echo.ContextbodyReader := r.Bodybuf, err := ioutil.ReadAll(bodyReader)if err != nil { fmt.Println(err)}fmt.Println(buf) // 二进制数据原创 2020-02-11 18:43:49 · 3446 阅读 · 0 评论