Go基础
文章平均质量分 55
死美子
Go后端开发,专注分享Go相关开发知识、LeetCode算法、技术文章等相关内容。
展开
-
《Go语言圣经》 练习 4.10
练习 4.10: 修改issues程序,根据问题的时间进行分类,比如不到一个月的、不到一年的、超过一年。思路:获取A一年前的时刻,B一月前的时刻过滤创建时间在B后、A后、A前面 的三种item分别将item加入对应的slicefunc main() { // **练习 4.10:** //修改issues程序,根据问题的时间进行分类,比如不到一个月的、不到一年的、超过一年。 // 获取过去一个月的时间,判断createtime是否在那个时间之后,在,就是不到一个月的 mbefore原创 2021-07-21 13:41:51 · 290 阅读 · 0 评论 -
《Go语言圣经》练习4.12
练习 4.12: 流行的web漫画服务xkcd也提供了JSON接口。例如,一个 https://xkcd.com/571/info.0.json 请求将返回一个很多人喜爱的571编号的详细描述。下载每个链接(只下载一次)然后创建一个离线索引。编写一个xkcd工具,使用这些离线索引,打印和命令行输入的检索词相匹配的漫画的URL。“https://xkcd.com/%d/info.0.json”.i请求链接,下载所有img链接用一个map存储内容便于索引type Xkcd struct原创 2021-07-21 13:41:02 · 210 阅读 · 0 评论 -
Golang Slice浅析笔记
Slice笔记源自《Go语言圣经》数组固定长度,因此在GOlang中使用较少,常使用slice初始化数组:var a [2]int // int类型默认值为0a := [2]int{1,2} a := [2]int{}name4 := [...]string{"the", "hight"} // ... 暂时不确定长度,等到初始化时候确定数组的不确定长度,会在初始化的时候确定。都是在编译的时候确定。slice:slice就是对数组的切片, 并且a := x[1:9] a 与 x原创 2021-07-15 21:24:13 · 187 阅读 · 0 评论 -
Golang Append()详解
append函数的使用:append可以向一个slice中追加一个元素、多个元素、新的切片var x []intx = append(x, 1) // 追加一个元素x = append(x,2,3,4) //追加多个元素x = append(x, []int{5,6,7}...) //追加一个新的切片追加一个切片需要进行解包append()的原理如果原来slice capacity足够大的情况下,append()函数会创建一个新的slice,它与old slice共享底层内存创原创 2021-07-15 18:17:03 · 16243 阅读 · 2 评论 -
包名、文件路径、文件名的关系
包名、文件路径、文件名的关系本文参考大佬博客看懂后做的笔记名词说明:.├── test.go├── pkgA│ └── model.go # 以 package ddd 开头└── pkgB └── model.go # 以 package ddd 开头文件名: model.go 文件名路径:src后面直到文件夹的路径(import一个包的路径): ./pkgA包名: 每个go文件第一行package后面的名字 : package ddd问题:每个.go模块原创 2021-07-12 18:04:27 · 1207 阅读 · 1 评论 -
《Go入门指南》并发笔记
文章目录1 Goroutine2 信道 chan3 select*4 互斥锁练习题:exercise:等价二叉查找树判断树木是否相同:web爬虫1 Goroutine是什么?如何使用?不同的goroutine如何访问相同的内存地址是什么?在Golang中是一个轻量级线程。是Go中的基本执行单位,从语言上实现并发。如何使用?在函数前面加上go:f()go f() //线程访问共享内存需要通过信道chan2 信道 chan是什么?如何初始化?关于阻塞?信道用于提供原创 2021-07-08 18:11:37 · 167 阅读 · 0 评论 -
《Go官方指南》练习:Web 爬虫
web爬虫题目:练习:Web 爬虫在这个练习中,我们将会使用 Go 的并发特性来并行化一个 Web 爬虫。修改 Crawl 函数来并行地抓取 URL,并且保证不重复。提示:你可以用一个 map 来缓存已经获取的 URL,但是要注意 map 本身并不是并发安全的!思路:借鉴利用队列实现广度优先算法的思路,把第一个url当做根节点,根节点下面的url当做孩子节点,队列当做管道。把第一个url作为根节点,查询[showCrawl()函数]将对应孩子节点集合加入管道。遍历这个孩子节点集合重复2原创 2021-07-08 15:47:52 · 639 阅读 · 0 评论 -
《Go官方指南》(并发)练习:等价二叉查找树
练习:等价二叉查找树:题目原链接方法一:使用go思路:准备两个信道两棵树分别同时写入自己的信道,写入一个数据后立刻读出数据 (为使该步骤顺利进行,需要将两个Walk加上go)对比读出的数据,一旦数据不同 return false为什么选择没有缓冲的信道?防止出现ch1在读出第1个数据,ch2已经在读出第2个数据的情况,那样会误判为数据不一样return falsepackage mainimport ( "fmt" "golang.org/x/tour/tree")原创 2021-07-07 17:37:54 · 824 阅读 · 1 评论