var arrNum [5]int // this is an array var sliceNum []int // this is a slice fmt.Println(arrNum) // [5]int{0,0,0,0,0} array have initial value of zero value fmt.Println(sliceNum) // []int(nil) slice have initial value of nil value sliceNum == nil // true arrNum[0] = 1 // ok sliceNum[0] = 1 // compile time error because you cannot assign values to nil var arrNum2 [3]int arrNum = arrNum2 // compile time error because length is part of array type sliceNum := []int{0,0} sliceNum2 := []int{1,2,3} sliceNum = sliceNum2 // ok, you can assign slice of diffrent length to a slice