在写游戏服务器中, 特别是卡牌一类的游戏, 经常需要让用户手动输入房间号加入一个房间, 为了用户友好, 这个房间号通常需要限定长度, 比如4位或者6位数字. 因此用数据库的auto_increment对用户不太友好, 其…
分类:go教程
归并排序的 Go 语言实现和优化
查看完整的代码,点击这里 不了解归并排序的可以查看百度百科的分析 归并排序的实现 基本实现 package main import "fmt" // 合并 [l,r] 两部分数据,mid 左半部分的终点,mid + 1 …
go 通道的阻塞测试
go版本 go version go1.11.2 linux/amd64 无缓冲通道 测试样例 package main import "fmt" func main(){ naturals:=make(chan int…
创建尽可能小的 Docker 容器
注:本文由 Adriaan de Jonge 编写,本文的原文地址为 Create The Smallest Possible Docker Container 当我们在使用 Docker 的时候,你会很快注意到你正在下…
golang中几种加密方式的处理
缘由 在与第三方平台进行接入的时候,通常会存在一些签名或者加密的处理,在进行开发的时候,因为语言的不同,需要按照规范进行相应处理。 DES加解密 DES:https://en.wikipedia.org/wiki/Dat…
使用context实现多个goroutine的依赖管理
解决的问题 在很多实际情况,比如处理网络请求时,我们需要启动多个goroutine来处理不同的逻辑,比如一个主要的goroutine用来响应请求,生成网页,同时它还启动一个子线程用来获取数据库信息,还有一个则写日志等等。…
一个go的迷你网络库
go语言完善的基础设施为编写网络程序提供了极大的便利.只需要少量代码就可以编写一个高性能,稳定的异步网络程序. 本文介绍一个迷你的,基于事件回调的异步网络库. 首先简单介绍一下并发模型. go提供了基于goroutine…
golang 读取切分存储byte流文件
package main import ( "fmt" "os" "time" ) func check(e error) { if e != nil { panic(e) } } func cat(f *os.File…
Gin实践 连载七 Golang优雅重启HTTP服务
优雅的重启服务 在前面编写案例代码时,我相信你会想到 每次更新完代码,更新完配置文件后就直接这么 ctrl+c 真的没问题吗,ctrl+c到底做了些什么事情呢? 在这一节中我们简单讲述 ctrl+c 背后的信号以及如何在…
说说不知道的Golang中参数传递
本文由云+社区发表 导言 几乎每一个C++开发人员,都被面试过有关于函数参数是值传递还是引用传递的问题,其实不止于C++,任何一个语言中,我们都需要关心函数在参数传递时的行为。在golang中存在着map、channel…
Go sync.Map 看一看
偶然看见这么篇文章:一道并发和锁的golang面试题。虽然年代久远,但也稍有兴趣。 正好最近也看到了 sync.Map,所以想试试能不能用 sync.Map 去实现上述的功能。 我还在 gayhub上找到了其他人用 sy…
方法,接口学习笔记
之前在开发中编得过就行,没有好好地去思考一些细节问题,比如interface到底有什么用,现在好好总结下1.方法 package main import "fmt" import "reflect" type S str…