Go语言基础
米兰的小耳朵
Don't settle. Keep moving.
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
《Go 指南》 练习:Web 爬虫 || A Tour of Go , Exercise: Web Crawler
练习地址: Go指南关键代码段:注意 wg.Done 的位置不能放到 Crawl 方法中 sc.wg.Add(1) 后面,否则会出问题。【参考链接中的规则一】Unlock同理type SafeCounter struct { mp map[string]bool mux sync.Mutex wg sync.WaitGroup}// Crawl 使用 fetcher 从某个 URL 开始递归的爬取页面,直到达到最大深度。func (sc *SafeCounter)C.原创 2020-07-10 18:25:21 · 653 阅读 · 0 评论 -
Golang 切片容量(cap)增长探秘
在go 指南, 复习切片的时候,发现切片容量增长在一定范围内并不固定为2倍。以下内容为全文转载,地址golangSlice的扩容规则一段代码 以前一直以为go语言中的slice,也就是切片,其容量增长规则与std::vector一样,指数扩容,每次扩容都增长一倍,没有去详细了解过源代码。直到同事丢给了我以下这段代码:s := []int{1,2}s = append(s,4,5,6)fmt.Printf("%d %d",len(s),cap(s))...转载 2020-07-09 11:40:49 · 3266 阅读 · 0 评论 -
Go语言的return 与 defer 执行顺序
所有博客都会举两个例子, 声明返回值变量名称的 与 不声明返回值变量名称的.我觉得一个博主说的不错.为了弄清上述两种情况的区别,我们首先要理解return 返回值的运行机制:return 并非原子操作,分为赋值,和返回值两步操作eg1(不声明返回值变量名称的.) : 实际上return 执行了两步操作,因为返回值没有命名,所以return 默认指定了一个返回值(假设为s),首先...转载 2020-03-19 19:12:59 · 472 阅读 · 0 评论
分享