# goex **Repository Path**: woolen/goex ## Basic Information - **Project Name**: goex - **Description**: 《GO程序设计语言》原书示例代码和课后练习题代码 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 3 - **Created**: 2022-08-14 - **Last Updated**: 2022-08-14 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 《GO程序设计语言》课程源码和课后题代码 本项目为《GO程序设计语言》的学习笔记,包含课程源码和课后题代码,以及一些学习心得。 这本书有多个名字《Go语言圣经》/《GO程序设计语言》/《The Go Programming Language》,地位类似于K&R的《C程序设计语言》 本项目目录: * [原书示例代码](./原书示例代码):来自项目 [adonovan/gopl.io](https://github.com/adonovan/gopl.io),为了方便查看我直接拷贝过来了; * [课后习题代码](./课后习题代码):我的课后题的代码,仅供参考; * [电子书](./电子书):一些电子书,包括[《GO程序设计语言》的电子版](./电子书/gopl-zh.pdf); ## Golang 文档库 * Go 语言中文网 文档库:https://studygolang.com/pkgdoc Go 官方库的中文文档,带有函数的中文说明 * 步行者 Golang 文档库:https://gowalker.org/ 除了官方库,还包含 Gihub 上的第三方库的文档,也是中文 缺点是查询速度有些慢 ## 练习题完成情况 - [ ] ch1 入门 - [x] ex1.1 - [x] ex1.2 - [ ] ex1.3 - [x] ex1.4 - [x] ex1.5 - [x] ex1.6 - [x] ex1.7 简单 - [x] ex1.8 简单,strings.HasPrefix() 函数使用 - [x] ex1.9 简单,使用 resp.Status 输出状态码 - [x] ex1.10 简单,channel 和 goroutine - [x] ex1.11 简单,不用改代码 = = - [x] ex1.12 适中,用 r.ParseForm() 解析参数 - [x] ch2 程序结构 - [x] ex2.1 适中,导入当前目录中的包,方法的定义(method) - [x] ex2.2 适中,使用 fmt.Scanf() 进行输入 - [x] ex2.3 适中,编写 Benchmark 基准测试(性能测试)函数 - [x] ex2.4 适中,编写新的 PopCount 函数(移位法),并编写 Benchmark 函数对比性能 - [x] ex2.5 适中,编写新的 PopCount 函数(清零法),并编写 Benchmark 函数对比性能 - [ ] ch3 基础数据结构 - [x] ex3.1 简单,使用 math.IsNaN() 和 math.IsInf() 函数 - [x] ex3.2 简单,随便换了个函数 - [x] ex3.3 较难,根据高度渲染 svg 的颜色 - [ ] ex3.4 - [ ] ex3.5 - [ ] ex3.6 - [ ] ex3.7 - [ ] ex3.8 - [ ] ex3.9 - [ ] ex3.10 - [ ] ex3.11 - [ ] ex3.12 - [ ] ex3.13 - [ ] ch7 接口 - [x] ex7.1 适中 - [x] ex7.2 较难,接口的封装,还不太理解 - [x] ex7.3 适中,匿名函数写递归,有收获 - [ ] ex7.4 - [ ] ex7.5 - [ ] ex7.6 - [ ] ch11 测试 - [x] ex11.1 适中,编写 Test 开头的测试函数 - [x] ex11.2 较难,比较麻烦的测试函数编写 ## 其它人的课后习题代码 * [googege/Files](https://github.com/googege/Files/tree/master/gop_homework) * [KDF5000/gopl](https://github.com/KDF5000/gopl) * [rockyr8/gopl-topics](https://github.com/rockyr8/gopl-topics) ## 安装 imports 墙内用户直接使用 go get 安装会超时失败,我们采用折中方法。 1. 在$GOPATH建立以下目录 ``` $GOPATH/src/golang.org/x/ ``` 2. 进入 $GOPATH/src/golang.org/x/ 目录下执行 ``` git clone https://github.com/golang/tools.git ``` 3. 再执行 go get 命令就可以成功安装了 ```bash go install golang.org/x/tools/cmd/goimports ``` 引用自:[Golang基本工具的安装以及cobra的安装](https://blog.csdn.net/weimumu0515/article/details/78418208) ## GO语言入门:《Go语言圣经》/《GO程序设计语言》/《The Go Programming Language》 [《Go语言圣经》](https://studygolang.com/book/42) Go语言经典书籍,地位类似于K&R的《C程序设计语言》 ## GO语言进阶:《Effective Go》 中英双语版 [《Effective Go》中英双语版](https://github.com/bingohuang/effective-go-zh-en) 100 多页的书,很实用,已经加入项目目录。文件名:effective-go-zh-en-gitbook.pdf ## GO语言进阶:《Go Styleguide》 Go语言编程规范 [bahlo/go-styleguide](https://github.com/bahlo/go-styleguide) 根据多年的经验,这是对《Effective Go》的很好补充 ## GO语言进阶:《Go语言高级编程》 [《Go语言高级编程》](https://chai2010.cn/advanced-go-programming-book/)