If we need a dynamic arrays - dynamically sized- go has Slices which are much more common than arrays.

Same concept, but just with no size.

[]type{}

A slice does not store any data, it just describes a section of an underlying array.

To add or change an element in an array - need to know the index, use append() - for slices

func main() {
	empty_slice := []string{} // empty slice

	s := []string{"b1", "b2", "b3", "b4", "b5"}

	// Append returns the updated slice.
	// It is necessary to store the result of append
	// often in the variable holding the slice itself
	s = append(s, "b6")

	fmt.Printf("The whole array: %v\n", s)
	fmt.Printf("The whole array: %v\n", empty_slice)
	fmt.Printf("The 1st in array: %v\n", s[0])
	fmt.Printf("The 2nd in array: %v\n", s[1])
	fmt.Printf("Array type: %T\n", s)
	fmt.Printf("Array lengh:  %v\n", len(s))
}