Go
Go is a statically-typed language with syntax loosely derived from that of C, adding garbage collected memory management, type safety, some dynamic-typing capabilities, additional built-in types such as variable-length arrays and key-value maps, and a large standard library.
Installation
There are two Go compilers nowadays, and they can be installed from official repositories:
- gc: common name for official set of compilers 8g(x86), 6g(amd64), 5g(arm), that can be installed with go
- fast compilation
- gccgo: frontend for gcc, part of its compiler collection, can be installed with gcc-go
- goroutines becomes full flow
- small size of the binary
- better optimization
Test your installation
Check that Go is installed correctly by building a simple program, as follows:
hello.go
package main import "fmt" func main() { fmt.Println("Hello, Arch!") }
Then run it with the go tool:
$ go run hello.go
Hello, Arch!
Compilation with standard gc compiler (same as go build -compiler=gc test.go
):
$ go build test.go
Compilation with gccgo (same as go build -compiler=gccgo test.go
):
$ gccgo test.go -o test
$GOPATH
Go dependencies, when used for example in import
statements, are searched for in the $GOPATH
variable, and then - in $GOROOT
(go installation directory, /usr/lib/go
by default). If you expect to use external dependencies, not only basic from $GOROOT
, you must specify workspace area in your ~/.bash_profile
(or equivalent):
export GOPATH=~/go
Create that workspace:
$ mkdir -p ~/go/{bin,src}
src
directory is used to store sources of the project, and bin
for executables.
Also you can add path to bin
directory in $PATH
environment variable to run installed programs (written on Go language) anywhere (like, for example, ls
):
export PATH="$PATH:$GOPATH/bin"
Note that we also add the bin
subdirectory to the $PATH
so we can run any executables that be required.
Run go help gopath
for more information.