删除文章

确定要删除这篇文章吗?

取消
确定

go mod graph 图表

我们知道通过go mod graph命令可以输出当前工程的模块依赖图,但是这个输出是纯文本的并且只是简单的一对一的关系。 很难看出所有模块之间的依赖关系,如果能用图的形式来显示就清晰多了。 [Graphviz](https://www.ibm.com/developerworks/cn/aix/library/au-aix-graphv...
2小时前
阅读(6)

go 获取bing壁纸地址

必应首页背景图片每天一更新,如果想把它作为桌面壁纸好像没那么简单,它没有提供直接下载的地方也不能右键保存,但是通过分析网页源代码可以拿到我们要的信息。 地址:[https://ningto.com/bing](https://ningto.com/bing) 获取bing每日壁纸地址和标题 图片url在b...
1天前
阅读(8)

golang Options可变参数接口设计

golang中发现不少第三方库使用...Options作为接口参数,说不上这种方式有多好但是了解下也是不错的。 如下代码新建一个exchange,一个必填参数其他的是可选参数。 cassandraql package main import "fmt" type Options struct { Name string Kind string D...
9天前
阅读(35)

go 分批读取http应答数据

我们读取http应答通常用: ioutil.ReadAll(resp.Body) 很好用也很方便,但是如果应答的包很大时(下载文件),不仅会分配很大的内存而且慢。 所以我们需要分批读取,每次读取一块直到所有应答读取完成。 代码如下: func ReadChunk(r io.Reader, maxChunkSize int, ...
2个月前
阅读(126)

goquery基本用法

当我们通过网络拿到网页文本数据的时候,要对网页中的数据进行分析,筛选有用的数据。如果只是用平常的strings库来处理数据那效率太低了,goquery可以让我们使用类似jquery的方式来处理数据。 地址:[https://github.com/PuerkitoBio/goquery](https://github.com/Puerki...
4个月前
阅读(244)

golang slice切片作为函数参数时的陷阱

直接用例子说话 例1: func main() { s := make([]int, 1, 3) // 创建一个长度为1,容量为3的切片 fmt.Printf("before: slice addr %p point %p, val %v, len %d, cap %d\n", &s, s, s, len(s), cap(s)) modifySlice1(s) fmt.Printf("after: slice addr %...
4个月前
阅读(268)

go showapi.com接口

showapi.com提供了很多有意思的api,现在用go语言简单的封装下就可以用了。url的组装规则见[文档](https://www.showapi.com/helpcenter/go/sign) 目前提供了三个接口 获取组装后的url http请求返回字符串 http请求返回json 源码如下: package showapi ...
4个月前
阅读(298)

go http get post json

get和post请求使用比较频繁,这里只考虑json格式,做一下简单封装。 get请求 func HttpGetJson(url string, resp interface{}) error { result, err := http.Get(url) if err == nil { defer result.Body.Close() return json.NewDecoder(result.Body).De...
5个月前
阅读(287)

go 第三方github登录

给本网站加了一个第三方github登录的功能 在github上新建oauth app 登录github,在用户菜单中选择Settings->Deleloper settings->OAuth Apps->New OAuth App 记住Client ID,Client Secret,Authorization callback URL 点击github登录 html标签 <a href="...
5个月前
阅读(272)

golang.org被墙

是时候使用go mod来管理包了,具体参考:[go mod 使用](https://juejin.im/post/5c8e503a6fb9a070d878184a) 用dep ensure安装第三方库的时候总是失败,提示golang.org超时,如果不用代理的话肯定是访问不了的,但是我本地已经开了pgfastss代理而且浏览器上可以访问golang....
5个月前
阅读(551)

go json解析

由于go是静态强类型语言,不像JavaScript那样是动态语言,所以解析json的时候要先定义好解析后的结构体。 以获取豆瓣电影信息接口为例,地址如下: http://api.douban.com/v2/movie/top250?start=0&count=2 应答结果: { "count": 2, "start": 0, "total": ...
6个月前
阅读(484)

go logger

简单封装了下go log,四个日志等级,能满足基本业务需求,通过github.com/robfig/cron可以每天生成一个日志文件 package logger import ( "io" "log" "os" ) const ( LTrace = iota LInfo LWarn LError ) var ( file os.File Trace log...
6个月前
阅读(384)

go 工作池

go工作池,类似如线程池,不断的往池子里丢任务,池子开启多个线程不断的处理任务。go这里其实只是对go chan defer的简单封装。 work/main.go package work import "sync" type Pool struct { wg sync.WaitGroup task chan func() } func New(size i...
6个月前
阅读(302)

go queue

队列是一个先进先出的数据结构,go语言实现一个队列,为了通用队列的元素使用了interface,通常一个队列有如下方法: Push:向队列尾部压入一个元素 Pop:从队列头部弹出一个元素 Front:获取队列头部元素 Size:队列的长度 package queue import "errors" im...
6个月前
阅读(350)

go 连接池

连接池使用场景如数据库连接,通常为了平衡性能和资源会建立多个数据库连接,将他们放到一个池子中,需要的时候从池子里面取,用完了再归还给池子,如果池子里的资源不够会创建新资源,尽量要避免新建资源的速度大于池子的大小,池子的大小要在获取资源和归还资源之间做到平衡最...
6个月前
阅读(298)

go常见排序方法

golang排序写法还是蛮简洁的,不管是简单类型还是复杂的结构,倒序排序的时候可能有点奇怪不知道为什么这样设计 package main import ( "fmt" "sort" ) type Person struct { Name string Age int } func main() { // 整型排序 intList := [...
6个月前
阅读(281)

go学习代码片段

斐波纳契闭包、非闭包、递归三种实现方法 package main import ( "fmt" ) func finImpl() func() int { i, j := 0, 0 return func() int { if j == 0 { j = 1 return 1 } i, j = j, i+j return j } } func fibonacci(n int) [...
6个月前
阅读(318)

vscode go插件安装失败

vscode go插件安装失败 原因是本地没有golang tools,导致其他的插件安装失败,我们可以手动从github上下载。 使用命令查看GOPATH目录: go env GOPATH 找到您的GOPATH目录,我的是 C:\Users\yourname\go 在go/src目录下,新建golang.org目录如下: g...
6个月前
阅读(346)
 
Keep it simple,stupid
文章数
303
总访问量
491435
今日访问
1811
最近评论

tujiaw : registerThreadInactive:如果当前没有激活的线程,就去激活线程,让等待的线程去执行任务。
hgzzx : 佩服佩服。 请教:registerThreadInactive的作用是什么?
xuehaoyun : 很不错,来围观一下
tujiaw : 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞 : 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
于淞 : 你好,这个文章的源码能分享一下吗,838106303@163.com,谢谢了 上面的链接不能用了
tujiaw : 多谢多谢
essaypinglun college-paper.org : 很好的博客,赞赞
Folly : 这个实现有点奇怪,Qt为什么没有统一的比对方法。
过多s : alert("hello, world!")
回到顶部