资源/文章
全面型
入门练手项目
- gobyexample
- 初学Go语言,哪类小项目适合练手 介绍 swapview 查看系统每个进程的 swap 使用情况
- go语言值得学习的开源项目推荐 提到 Go 在 Github 上维护的一个 Go 优秀项目列表
- 有什么适合 Go 语言初学者的 Starter Project?
import 包
- What does an underscore in front of an import statement mean in Golang?
- What does the '.' (dot or period) in a Go import statement do?
json 相关
命令行参数
json 处理
yaml 处理
Go包依赖管理
- 官方给出的这类工具列表
- govendor
- glide
- Go Vendoring Tools 使用总结
- 大家推荐哪种golang包管理方式? 讨论
- Should I add "vendor" directory into .gitignore if I am using tools like glide or godep ? 讨论
最后一个问题,需要将 vendor 目录加入 git 中吗?包括参考了 github上一些大的golang项目,有的项目压根不存 vendor,有的只存了 vendor/vendor.json
,也有的将整个 vendor 目录都加入 git 中了。
虽然帖子里有提到都是文本不会很大,但是实际并不是这样,比如我用了 github.com/mattn/go-sqlite3
这个包,里面有一个 sqlite3-binding.c 占了 6.8M。
(2017-10-10更新)再次研究了下,首先glide除了引入vendor目录,还引入了glide.yaml和glide.lock,两个额外文件在一级目录下,且使用起来比较麻烦;相比而言,govendor只引入了vendor目录,而它的版本元信息维护文件在vendor/vendor.json
中,维护也比较简单,个人比较倾向这种方式。另外依然是上面的问题,最终我决定使用 hugo的方式,只维护vendor/vendor.json
文件,依赖包自身内容先不维护了。
Q&A
Go get 被 X 的解决
http_proxy=127.0.0.1:8123 https_proxy=127.0.0.1:8123 go get -u ...
注意有些地址是 https 的,所以将两个都配置了。
参考:
关于单引号和双引号
如果是单引号,'b',则输出98
如果是双引号,"b",则输出b
参考http://stackoverflow.com/a/34691123/1276501:
In Go,
'⌘'
represents a single character (called a Rune), whereas"⌘"
represents a string containing the character⌘
.
This is true in many programming languages where the difference between strings and characters is notable, such as C++.
Check out the "Code points, characters, and runes" section in the Go Blog on Strings