去工作区中的多个项目

In Go, the workspace contains the src, pkg and bin directories. How do I create multiple projects in the workspace, each with its own src, pkg, bin directories, such that I can 'go get' packages into the pkg directory of a particular project.

You probably do not need that. Let's forget also the word "workspace" it's probably only confusing you.

If you set your GOPATH environment variable that that's all you actually need to have multiple projects independently sitting on you hard disk.

For example, having export GOPATH="$HOME", and performing

$ go get github.com/foo/bar
$ go get github.com/baz/qux

Your directory tree will be

$GOPATH/pkg...
        compiled packages
$GOPATH/src/github.com/foo/bar
        bar.go
$GOPATH/src/github.com/baz/qux
        qux.go

More details here. Note that it does talk about workspaces, but I still consider that fact very unfortunate. The earlier versions of that doc did not use nor define the concept and they were useful anyway. That's IMO a proof of it (the workspace) being redundant.

go get is not intended to be used that way.

all go get packages land in $GOPATH/* as described here: http://golang.org/doc/code.html#remote and there is no concept of separate workspaces.

If you really want several "workspaces": Have several entries in GOPATH (separated by ":" on unix). (But most just keep everything under one GOPATH).

Remember that go get fetches packages only into your first GOPATH entry.

The other entries can be used as "seperate workspaces".