资源/文章

全面型

入门练手项目

import 包

json 相关

命令行参数

json 处理

yaml 处理

Go包依赖管理

最后一个问题,需要将 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