defer的使用规则

在golang当中,defer代码块会在函数调用链表中增加一个函数调用。这个函数调用不是普通的函数调用,而是会在函数正常返回,也就是return之后添加一个函数调用。因此,defer通常用来释放函数内部变量。 为了更好的学习defer的行为,我们首先来看下面一段代码: func CopyFile(dstName, srcName string) (written int64, err error) { src, err := os.Open(srcName) if err != nil { re...阅读全文

阅读:846 评论:1

适合新手看的资源下载小程序

大部分新手(比如我)看完golang圣经之后不知道该做些什么好,那不如就来做一个资源下载小程序吧。这里用一个视频网站作为示范,来编写一个小小的资源下载小程序 因为是个小程序,所以所有函数和方法都放在一个 main 包里。 首先导入我有用到的标准库。 ``` package main import ( "bufio" "fmt" "io" "io/ioutil" "net/http" "os" "path" "regexp" "string...阅读全文

2017-11-18 21:48:42 golang_291
阅读:2895 评论:5

Gopher 2019 Go并发编程的分享

目录 [−] 内容划分基本同步原语MutexRWMutexCondWaitgroupOnceA XXX must not be copied after first use.PoolMap扩展同步原语ReentrantLockSemaphoreSingleFlightErrGroupSpinLockfslockconcurrent-map原子操作操作的数据操作方法SubtractValueChannelGo内存模型单个goroutine内包级别的init函数go语句channelMutex/RW...阅读全文

2019年04月28日 smallnest
阅读:2119 评论:0