删除文章

确定要删除这篇文章吗?

取消
确定

golang调用Windows API

golang还能调用Windows API非常有意思,下面写了一个golang换壁纸的demo。 准备了两张bmp格式的图片,没三秒钟换一下壁纸。 主要是先通过dll获取里面api,要注意api参数的写法,dll用完了要释放句柄,这里我用缓存把api缓存起来不必每次调用都去dll里加载。 代码: ...
3天前
阅读(12)

goland2020.1含激活

下载地址:https://pan.baidu.com/s/1qh49NXUm0K0VlJo82d723A 提取码:4p8h 激活方式见:Patch/jetbrains-agent/README.txt 如果你下载的jetbrains-agent.jar小于2M,肯定是没有下载完全(可对照sha1sum.txt)。 请保留压缩包内的important.txt和jetbrains-agent...
24天前
阅读(161)

golang html/template模板继承(嵌套)实例

golang的模板包是html/template,使用的时候通常我们会关注它的模板继承(模板嵌套)怎么写, 毕竟这影响到整体网页渲染接口的写法,以及接口是否优雅和可扩展。 base.tmpl 首先,我们定义一个基础模板layouts/base.tmpl cassandraql {{ define "base" }} <html> <he...
25天前
阅读(61)

sync.WaitGroup增加timeout

要等待多个goroutine完成,我们可以使用sync.WaitGroup,但是它会一直等待,这里简单封装下增加超时机制。 直接上代码: type WaitGroupTimeout struct { wg sync.WaitGroup done chan struct{} timeout time.Duration } func NewWaitGroupTimeout(timeout...
1个月前
阅读(69)

golang与qpid broker通信

这里我用的是github.com/Azure/go-amqp这个库,它支持AMQP 1.0协议,是纯go语言实现的。qpid用的是1.39.0版本直接启动的话它是不支持AMQP 1.0协议的,需要加载amqp.so库([加载方法](https://www.ningto.com/post/5ea109bb707b535469eb754c))。 下面演示使用sender和rece...
1个月前
阅读(90)

用脚本启停我的go程序

用一个脚本来方便编译、启停我的blog程序(go语言编写的),我在程序中使用了github.com/sevlyar/go-daemon这个库来让博客进程在后台运行。具体用法可以看github上的README,它会生成一个文件存放当前运行进程的pid,我这里取名叫:ningtogo.pid。下面就是服务端脚本的编写了。 ...
1个月前
阅读(80)

go channel缓冲的作用

golang中make chan第二个参数设置缓冲区的大小,如果不设置是无缓冲区的。 下面通过一个例子来说明缓冲的作用。 代码如下: package main import ( "fmt" "time" ) var ch = make(chan int) func main() { go sender() time.Sleep(1 time.Second) ...
1个月前
阅读(82)

go拓扑排序

拓扑排序常用来确定一个依赖关系集中,事物发生的顺序。例如,在日常工作中,可能会将项目拆分成A、B、C、D四个子部分来完成,但A依赖于B和D,C依赖于D。为了计算这个项目进行的顺序,可对这个关系集进行拓扑排序,得出一个线性的序列,则排在前面的任务就是需要先完成的任务。 注意...
3个月前
阅读(152)

go反射

简单结构 package main import ( "fmt" "reflect" ) type User struct { Id int Name string Age int } func (u User) Say() { fmt.Println("hello, world!") } func PrintInfo(o interface{}) { t := reflect.TypeOf(o) fmt.Pri...
3个月前
阅读(142)

go模拟命令行文件拷贝命令

通过这个小程序可以熟悉下面这些包和函数: 1. 命令行参数解析(flag); 2. 从命令行读取输入数据(bufio, reader); 3. 文件操作,判断文件是否存在,创建拷贝文件(io, defer); 4. 基本操作(fmt, string) 代码: package main import ( "bufio" "errors" "...
3个月前
阅读(162)

go mod graph 图表

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

go 获取bing壁纸地址

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

golang Options可变参数接口设计

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

go 分批读取http应答数据

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

goquery基本用法

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

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 %...
11个月前
阅读(612)

go showapi.com接口

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

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...
11个月前
阅读(613)

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="...
11个月前
阅读(540)

go代理 golang代理 GOPROXY

是时候使用go mod来管理包了,具体参考:[go mod 使用](https://juejin.im/post/5c8e503a6fb9a070d878184a) 用dep ensure安装第三方库的时候总是失败,提示golang.org超时,如果不用代理的话肯定是访问不了的,但是我本地已经开了pgfastss代理而且浏览器上可以访问golang....
1年前
阅读(1153)
 
Keep it simple,stupid
文章数
325
总访问量
759600
今日访问
709
最近评论

liangzi: 不错 谢谢分享
tujiaw: registerThreadInactive:如果当前没有激活的线程,就去激活线程,让等待的线程去执行任务。
hgzzx: 佩服佩服。 请教:registerThreadInactive的作用是什么?
xuehaoyun: 很不错,来围观一下
tujiaw: 抱歉csdn code服务关闭了,这个代码我也找不到了
于淞: 你好,这个文章的源码能分享一下吗,songsong9181@163.com,谢谢了 上面的写错了
回到顶部