Golang运行时错误:索引超出范围

I have a simple for loop in go which iterates through a slice of integers and changes the position of the current if next is smaller basically a sort, but it keeps showing me this error which says

panic: runtime error: index out of range

Here is the code:

func sort(n int, l []int) interface{} {
    fmt.Println(l)
    if d == false {
        d = true
        for i := range l {
            n := i + 1
            t := l[i]
            l[i] = l[n]
            l[n] = t
            arr = l
            d = false
        }
        return sort(n, arr)
    }
    return arr
}

Returned arr is declared as a global variable. Here is the error:

panic: runtime error: index out of range

goroutine 1 [running]:
main.troubleSort(0x5, 0xc42001a150, 0x5, 0x5, 0x0, 0xc42000e1d0)
        /home/julkreshpaj/codejam/Trouble Sort/Solution.go:21 +0x1c1
main.main()
        /home/julkreshpaj/codejam/Trouble Sort/Solution.go:60 +0x82
exit status 2

You're trying to access l[n] where n := i + 1, and i is the index of l. This means that on the last time through the loop, when i is the last element in l, n will always be past the last element of l. Every time.