Go Programming/Print version
1. Introduction
Overview
Go is an open source, compiled, garbage-collected, concurrent system programming language.
Go aims to provide the efficiency of a statically typed compiled language with the ease of programming of a dynamic language.
Other goals include:
- Safety: Type-safe and memory-safe.
- Intuitive concurrency by providing "goroutines" and channels to communicate between them.
- Efficient garbage collection "with low enough overhead and no significant latency".
- High-speed compilation.
Go's mascot is a gopher.
Installing and using Go
Visit the Go programming download page and choose the option corresponding to your platform or operating system.
History
Go was designed at Google in 2009 by Robert Griesemer, Rob Pike, and Ken Thompson.
2. Getting Started
Hello World
Let's start with a simple example, the venerable hello world program.
package main
import "fmt"
func main() {
fmt.Println("Hello, World!")
}
As you can see there is a lot going on here. The first line:
package main
starts every go source file. It states which package this file belongs to. Think of a package as a bag of code, where you are going to stuff the internals of your programs into. The main package is special, and will we get into that in a moment.
import "fmt"
The line declares all the packages (or bags of code others have written to help us do things — also known as libraries) we are going to use. In this case, we are going to use the fmt (the format package: pronounced fa-umpt) Again, in later sections, we will delve deeper into packages.
func main(){
…
}
Here we declare a function (```func```). A function is a set of instructions that we provide to the computer to get it to do what we want it to do. There are few special functions in go, and that function is the entry point of the program.