Go Basics
Resources: http://golang.org/
Install and Setup
sudo apt-get install golang
http://golang.org/doc/code.html discusses setting up the GOLANG environment variable and your code repository
mkdir -p $HOME/projects/go/src export GOPATH=$HOME/projects/go (add this to .profile too)
Hello World
// hello.go
package main
import (
"fmt"
"os"
"strings"
)
func main() {
who := "World!"
if len(os.Args) > 1 { /* os.Args[0] is "hello" or "hello.exe" */
who = strings.Join(os.Args[1:], " ")
}
fmt.Println("Hello", who)
}
Commands
godoc -http=:8000 # host docs at http://localhost:8000 go build # create binary file in local directory go install # create binary file in $GOPATH/bin go run # just run it, disposing of binary go get github.com/nsf/gocode # grab a remote package and install it to $GOPATH/bin go get -u github.com/nsf/gocode # update to latest version of remote package
Comments
// for end-of-line /* for multiline */
Packages
- Every file should begin with a
package
statement. - A package may be defined across several files.
- Code execution begins with a
main()
function insidepackage main
Variables
var i int # declared, silently initialized to 0 var i int = 56 # declared and initialized i := 56 # same thing, infers type from context