Numbers
Conversion between numbers can be done using a global built-in function with the type name.
myId := 10
myTicketPrice := 55.7
myIdAsFloat := float64(myId)
myTicketPriceAsInt := int(myTicketPrice)
Not every conversion is possible, e.g. a
stringinto abool.
Strings
Multiline strings can be created using backticks.
strSingle := "Just a single line of text."
strMulti := `We are
on multiple
lines here!`
Collections
What do we have?
Arrays
Fixed length
[5]int
Slices
Similar to dynamic length arrays, but are in practice chunks of arrays
[]int
Maps
Key-value dictionaries
map[keyType]valueType
// Example
map[string]int
Generics
Since Go version 1.18
TRY IT OUT

- Declare a new array with a length of
20and typestring. - Declare a new slice with the type
int. - Declare a new map with a key of type
intand a value of typestring. - Discuss the special function
init. This is not the same as main() ! Not a constructor. - The
len()function returns the length of a collection.
Collections are not objects. We use global functions to work with collections, such as
len()andcap().
Arrays and slices
Remember, arrays are fixed length and slices are dynamic length.
Arrays
var countries [180]string
countries[0] = "Denmark"
// Initialize with values, shorthand notation
accounts := [5]int{1, 2, 3, 4, 5}
Slices
Declaring a string slice.
We use append to add values and note that the new slice is assigned back to the variable.
var countries []string
countries = append(countries, "Denmark")
Initialize with values.
Overrides any capacity defined in the declaration.
var countries = []string{"Denmark", "Sweden", "Norway"}
println(len(countries))
Initialize with a length of 5.
The slice already holds 5 empty strings, so an append adds a 6th value.
var countries = make([]string, 5)
Initialize with a length of 0 and a capacity of 5.
Capacity is the space reserved up front. Go only allocates more memory when an append goes beyond it.
var countries = make([]string, 0, 5)
println(len(countries), cap(countries)) // 0 5
Maps
Pay attention to the type definition.
- For maps the default value is
nil—initialization is required.
var platformUsers = map[string]int{"Facebook": 1000000, "Twitter": 500000}
The make() function can also be used to initialize a map and this is most commonly what is done as maps are rarely small in size.
var platformUsers = make(map[string]int)
platformUsers["Facebook"] = 1000000
platformUsers["Twitter"] = 500000