日常开发中我们经常会使用到第三方Go包,而很多Go包中默认都包含了一些example示例代码来帮助用户直观的感受产品运行效果,那我们应该怎么运行这些代码呢?

以前都是一股脑儿的git clone整个仓库然后切换到example目录运行相关代码来看效果,除了这种方法外,我们还可以使用Go为我们提供的go list工具链命令来实现同样的效果。

在笔记本电脑前工作的Gopher

这里以github.com/gorilla/websocket这个Web Socket包为例,官方示例代码如下:

1 go get github.com/gorilla/websocket
2 cd `go list -f '{{.Dir}}' github.com/gorilla/websocket/examples/chat`
3 go run *.go

这里主要解释下第二行代码的含义:

# cd反引号(``)表示命令替换,它会先执行反引号中的命令,然后将命令代码的返回结果替换到命令行中
cd `命令代码`

 

# go list命令的作用是列出包的相关信息
go list github.com/gorilla/websocket/examples/chat

给go list加上 -f ‘{{ .Dir }}‘参数是指定了go list的输出格式,这里使用了Go模版语法,’{{ .Dir }}‘表示输出包的目录路径

# go list命令的作用是列出包的相关信息
go list -f '{{ .Dir }}' github.com/gorilla/websocket/examples/chat

所以,这段代码整体的作用就是获取github.com/gorilla/websocket/examples/chat这个Go包的目录里路径,并切换到这个目录下,然后可以直接在改目录下运行相关go代码了。