golang多线程之精巧

遇到一个数据查找问题,不算很难,但是使用golang的context包和goroutine相关内容来实现令人无比舒适,下面看题目: 假设有一个超长的切片(其他语言的同学理解为数组即可),切片的元素类型为int,切片中的元素为乱序排列。限时5秒,使用多线程查找切片中是否存在给定值,在找到目标值或者超时后立刻结束所有的查找任务。 下面来演示解决方法,首先进行一点点背景介绍,go对多线程进行了协程封装(goroutine),goroutine间数据通讯建议使用通道(channel,一种可以有缓冲的队列...阅读全文

阅读:831 评论:0

如何优雅的写校验函数

有的时候,为了检查入参,会有很多项需要检查,如果一个一个if-else的去判断,会显得很low,先看一个比较丑的写法: func checkQeuryParam(c *condition) bool { if c.offset > 100000 { return false } if c.limit > 100 { return false } if c.timebegin != "" { zone := time.FixedZone("CST", 8*3600) t, err := time....阅读全文

2020-06-19 07:32:33 laughbug
阅读:568 评论:0

小姐姐用动图展示 10 大 Git 命令,包你看完过目不忘!

git merge、git rebase、git reset、git revert、git fetch、git pull、git reflog……你知道这些 git 命令执行的究竟是什么任务吗?如果你还有些分不清楚,那千万不能错过这篇文章。在本文中,熟知 JavaScript、TypeScript、GraphQL、Serverless、AWS、Docker 和 Golang 的 21 岁年轻软件顾问 Lydia Hallie 通过动图形式直观地介绍了这些常用 git 命令的工作过程,包你过目不忘...阅读全文

2020-06-16 17:32:49 吃井不忘挖水人呢
阅读:984 评论:0