How to shift elements of a slice to the right by one position in Go

1 Answer

0 votes
package main

import (
    "fmt"
)

func shiftRight(arr []int) {
    if len(arr) == 0 {
        return
    }
    last := arr[len(arr)-1]
    for i := len(arr) - 1; i > 0; i-- {
        arr[i] = arr[i-1]
    }
    arr[0] = last
}

func printArray(arr []int) {
    for _, val := range arr {
        fmt.Printf("%d ", val)
    }
    fmt.Println()
}

func main() {
    nums := []int{0, 1, 2, 3, 4, 5, 6}
    
    shiftRight(nums)
    printArray(nums)
}



/*
run:

6 0 1 2 3 4 5 

*/

 



answered Jun 27, 2025 by avibootz
...