学习 Go 语言
Go 语言的基本概念
Go 语言之旅的练习题及代码
Go 语言的经典代码
爱博客大伯
做个合格的程序员
展开
-
访问 Android 开发者网站 & Go 官网
访问 Android 开发者网站方法一:直接访问官网 https://developer.android.google.cn/方法二: 当你搜索 Android 相关的资料时,可能会先搜到 https://developer.android.com,例如https://developer.android.com/studio/build/dependencies,如果没有梯子可能无法访问。这...原创 2019-11-25 13:31:31 · 3095 阅读 · 0 评论 -
学习 Go 语言 0x0d:《Go 语言之旅》中练习 Web 爬虫
★ 题目https://tour.go-zh.org/concurrency/10练习: Web 爬虫在这个练习中,我们将会使用 Go 的并发特性来并行化一个 Web 爬虫。修改Crawl函数来并行地抓取 URL,并且保证不重复。提示:你可以用一个 map 来缓存已经获取的 URL,但是要注意 map 本身并不是并发安全的!★ 代码注:我的代码中用到了 WaitGroup,WaitG...原创 2019-03-30 22:41:49 · 1008 阅读 · 3 评论 -
学习 Go 语言 0x0c:《Go 语言之旅》中 练习 等价二叉查找树
★ 题目https://tour.go-zh.org/concurrency/7https://tour.go-zh.org/concurrency/8练习: 等价二叉查找树不同二叉树的叶节点上可以保存相同的值序列。例如,以下两个二叉树都保存了序列 1,1,2,3,5,8,13。在大多数语言中,检查两个二叉树是否保存了相同序列的函数都相当复杂。 我们将使用 Go 的并发和信道来编写一个...原创 2019-03-30 22:34:19 · 1131 阅读 · 1 评论 -
学习 Go 语言 0x0b:《Go 语言之旅》中练习使用 Image
★ 题目https://tour.go-zh.org/methods/25还记得之前编写的图片生成器吗?我们再来编写另外一个,不过这次它将会返回一个image.Image的实现而非一个数据切片。定义你自己的Image类型,实现必要的方法并调用pic.ShowImage。Bounds应当返回一个image.Rectangle,例如image.Rect(0, 0, w, h)。ColorMo...原创 2019-03-30 22:13:10 · 1504 阅读 · 0 评论 -
学习 Go 语言 0x0a:《Go 语言之旅》中 rot13Reader 练习题
★ 题目https://tour.go-zh.org/methods/23练习:rot13Reader有种常见的模式是一个 io.Reader 包装另一个 io.Reader,然后通过某种方式修改其数据流。例如,gzip.NewReader 函数接受一个 io.Reader(已压缩的数据流)并返回一个同样实现了 io.Reader 的 *gzip.Reader(解压后的数据流)。编写一个...原创 2019-03-30 22:04:57 · 583 阅读 · 0 评论 -
学习 Go 语言 0x09:《Go 语言之旅》中练习使用 Reader
★ 题目https://tour.go-zh.org/methods/22练习:Reader实现一个 Reader 类型,它产生一个 ASCII 字符 ‘A’ 的无限流。★ 代码注:不确定代码是否正确,代码的输出是 OK。package mainimport "golang.org/x/tour/reader"type MyReader struct{}// TODO: 给...原创 2019-03-30 21:50:51 · 1736 阅读 · 0 评论 -
学习 Go 语言 0x08:《Go 语言之旅》中 练习使用 error
★ 题目https://tour.go-zh.org/methods/20练习:错误从之前的练习中复制 Sqrt 函数,修改它使其返回 error 值。Sqrt 接受到一个负数时,应当返回一个非 nil 的错误值。复数同样也不被支持。创建一个新的类型 type ErrNegativeSqrt float64并为其实现func (e ErrNegativeSqrt) Error()...原创 2019-03-30 21:46:27 · 670 阅读 · 0 评论 -
学习 Go 语言 0x07:《Go 语言之旅》中 Stringer 练习题代码
★ 题目https://tour.go-zh.org/methods/18练习:Stringer通过让 IPAddr 类型实现 fmt.Stringer 来打印点号分隔的地址。例如,IPAddr{1, 2, 3, 4} 应当打印为 “1.2.3.4”。★ 实现方式一:使用strconvstrconv的使用,参考:https://golang.google.cn/pkg/strconv/...原创 2019-03-30 21:23:22 · 1235 阅读 · 3 评论 -
学习 Go 语言 0x06:《Go 语言之旅》中 斐波纳契闭包 练习题代码
★ 题目https://tour.go-zh.org/moretypes/26练习:斐波纳契闭包实现一个 fibonacci 函数,它返回一个函数(闭包),该闭包返回一个斐波纳契数列 (0, 1, 1, 2, 3, 5, ...)。★ 代码package mainimport "fmt"// 返回一个“返回int的函数”func fibonacci() func() int {...原创 2019-03-29 23:17:46 · 282 阅读 · 0 评论 -
学习 Go 语言 0x05:《Go 语言之旅》中映射(map)的练习题代码
★ 题目:使用映射(map)实现WordCounthttps://tour.go-zh.org/moretypes/23练习:映射实现 WordCount。它应当返回一个映射,其中包含字符串 s 中每个“单词”的个数。函数 wc.Test 会对此函数执行一系列测试用例,并输出成功还是失败。你会发现 strings.Fields 很有帮助。★ 代码package mainimport...原创 2019-03-29 23:09:35 · 998 阅读 · 2 评论 -
学习 Go 语言 0x04:《Go 语言之旅》中切片的练习题代码
★ 操作 slice 显示图片练习题位置: https://tour.go-zh.org/moretypes/18直接上代码:package mainimport "golang.org/x/tour/pic"func Pic(dx, dy int) [][]uint8 { img := make([][]uint8, dy) for i := 0; i < d...原创 2019-03-29 23:03:43 · 1132 阅读 · 0 评论 -
学习 Go 语言 0x03:理解变量之间的依赖以及初始化顺序
本文介绍 Go 语言中变量之间的依赖,也是 Go 语言规范中的例子,只是扩充了一点点。★ 代码package main import "fmt" var ( a = b + c b = f() c = f() d = 3 ) func f() int { d++ return d } func main() { f...原创 2019-03-29 22:34:57 · 232 阅读 · 0 评论 -
学习 Go 语言 0x02:对切片 Slice 的理解
学习 Go 语言 0x02:对切片 Slice 的理解只是我自己的理解,仅供参考。如果理解的不对,请不吝指正。谢谢:)★ 例1代码源自 Go 语言之旅,可能会稍有改动。package mainimport "fmt"func main() { s := []int{2, 3, 5, 7, 11, 13} fmt.Println(len(s), cap(s),s) s ...原创 2019-03-29 22:07:37 · 260 阅读 · 0 评论 -
学习 Go 语言 0x01:从官网开始
★ Go 语言的官网https://golang.org/这个网址被墙了,因为golang.org只是别名(CNAME),其真实的域名是golang-consa.l.google.com。ping 这个域名,可以知道:ping golang.org正在 Ping golang-consa.l.google.com [216.239.37.1]google.com在中国还不能访问,所以g...原创 2019-03-26 23:15:49 · 1174 阅读 · 0 评论