Currently, the tools in the official Go SDK are the most used tools to develop Go projects. In Go 101 article series, all examples are compiled and verified with the standard Go compiler.
This article will introduce how to setup the Go development environment and how to run simple Go programs. Some tools of the official Go SDK will also be introduced.
Please download the official Go SDK and install it according the instructions shown in the download page.
The version of an official Go SDK release is consistent with the highest Go language version the release supports. For example, the latest Go SDK 1.12.x supports all Go language versions from 1.0 to Go 1.12.
The path to the bin
subfolder in the Go SDK installation root path
must be put in the PATH
environment variable to execute the tools
(mainly the go
subcommands) in the SDK without inputting their full paths.
If your Go SDK is installed with an installer or by a package manager, the path to
the bin
subfolder may have been already set in the PATH
environment variable automatically for you.
Earlier Go SDK versions may require GOROOT
and GOPATH
environment variables to be set.
The latest Go SDK has no such requirements.
The default value of the GOPATH
environment variable is
the path to the go
folder under the home directory of the current user.
GOPATH
environment variable may list multiple paths.
Let's write a simple example and learn how to run simple Go programs.
The following program is the simplest Go program.package main
func main() {
}
The words package
and func
are two keywords.
The two main
words are two identifiers.
Keywords and identifiers are introduced in
a coming article.
The first line package main
specifies the package name
(main
here) of the source file.
The second line is a blank line for better readability.
The remaining code declares a function
which is also called main
.
This main
function in a main
package
specifies the entry point of a program.
(Note that some other user code might be executed
before the main
function gets invoked.)
The official Go SDK requires that Go source code file
to have the extension .go
.
Here, we assume the above source code is saved in a file
named simplest-go-program.go
.
$ go run simplest-go-program.go
Nothing is output? Yes, this program outputs nothing.
If there are some syntax errors in the source code, then these errors will be reported as compilation errors.
Note: if multiple source files are in themain
package of a program,
then we should run the program with the following command
$ go run *.go
Note, the go run
command is not recommended
to compile and run large Go projects.
It is just a convenient way to run simple Go programs,
like the ones in the Go 101 articles.
For large Go projects,
please use the commands go build
or go install
to create (and run) executable binary files instead.
go
Subcommands
The three commands, go run
, go build
and go install
,
will only show code syntax errors (if any).
They don't (try to) show code warnings (a.k.a., possible code logic mistakes).
We can use the go vet
command to check and report such warnings.
We can use the go fmt
command to format Go source code
with a consistent coding style.
We can use the go get
command to clone and checkout
a remote third-party go package repository.
go get
requires the corresponding version control tool must be installed.
If the command succeeds, the third-party go package will be put in
the src
folder under the first path specified
in the GOPATH
environment variable.
We can use the go test
command to run tests and benchmarks.
We can use the go doc
command to view Go documentations in terminal windows.
Since Go SDK 1.11, we can use the go mod
command to package dependencies.
We can use the go help aSubCommand
command to view the help message for a specified sub command.
The go
command run without any arguments
shows the supported subcommands.
The Go 101 article series will not explain much more on how to use the tools provided by the official Go SDK. Please read the official documentations for details.
We can view all kinds of Go documentations at the official Go website golang.org.
We can also run godoc -http=:9999
to start a local clone of the
official website at localhost:9999.
GOROOT
environment variable is unset,
we must specify the goroot
flag when running the local godoc server,
e. g. godoc -http=:9999 -goroot path/to/go/sdk
.
This inconvenience is caused by a bug in Go SDK 1.10.
This bug has been fixed since Go SDK 1.11.
go get golang.org/x/tour; tour
to view the documentation locally.
godoc
command will be removed from Go SDK since version 1.13.
Currently (Go SDK 1.12), the godoc
command doesn't support showing documentations
of packages outside of the paths specified in the GOPATH
environment variable.
The godoc
command tries to list the documentations of all the packages
under the paths specified in the GOPATH
environment variable.
If you only want to view the documentations of the standard packages,
you can set the GOPATH
environment variable to a non-exist path
before running godoc
, e. g. GOPATH=nonexist godoc -http=:9999
.