Third-Party Packages
我们在本书中使用go工具除了可以编译程序和包(e.g.,omap package), 也可以用于下载,编译和安装第三方的包。第三方包在godashboard.appspot.com/project网站上.(另一种下载第三方包源代码的方式是通过分布式版本系统,获得代码的副本,并在本地编译)。
为了安装Go Dashboards上面的包,首先点击它的链接到这个包的主页,在包的web网站上有go get命令,教你如何下载和安装这个包。
比如,如果我们点击了Go Dashboards上的freetype-go.google.com/hg/freetype链接,它会带我们到code.google.com/p/freetype-go/页面,在页面的最前面有:go get freetype-go.google-code.com/hg/freetype.
当涉及到第三方包,必须使用go get安装。默认情况安装到GOPATH环境变量的第一个路径下(如果设置了这个GOPATH环境变量),并且在安装失败的情况下,会安装到GOROOT目录下。如果我们想强制go get 使用GOROOT目录,我们可以在运行go get之前,取消GOPATH的设置。
如果我们执行go get命令,它将在默默的下载,编译和安装包。我们可以通过godoc运行一个web服务器(e.g., godoc -http=:8000)查看新安装包的文档。
为了避免命名冲突,第三方包通常使用域名来保证它的唯一性。比如,为了使用FreeType包,我们的导入语句为import "freetype-go.googlecode.com/hg/freetype".当然,在使用这个包的函数时,只需要freetype. 比如,font, err := freetype.ParseFont(fontdata). 在非常罕见的情况下,freetype也可能会发生命名冲突,这里我们可以使用别名。举例来说,import ftype "freetype-go.googlecode.com/hg/freetype". 然后在我们的代码中,就可以使用font, err := ftype.ParseFont(fontdata).