Array — fixed size. Slice — dynamic, flexible.
Array:
1// Array of 5 ints2var arr [5]int3arr[0] = 145// Type includes length6var arr2 [3]int // Different type from [5]int
Slice:
1// Slice2s := []int{1, 2, 3}3s = append(s, 4) // Can grow45// From array6arr := [5]int{1, 2, 3, 4, 5}7slice := arr[1:4] // [2, 3, 4]
Slice structure:
When to use: