[5]int - НЕ срез, а массив неизменной длины, равной 5. Который НЕ создаётся функцией make и для которого бессмысленно использовать функцию len.
Использование массива:
package main
import "fmt"
func FiveSteps(arr [5]int) [5]int {
var reversed [5]int
for i, v := range arr {
reversed[4 - i] = v
}
return reversed
}
func main() {
tmp := [5]int{1, 4, 9}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))
}
Использование среза:
package main
import "fmt"
func FiveSteps(arr []int) []int {
reversed := make([]int, len(arr))
for i, v := range arr {
reversed[len(arr) - 1 - i] = v
}
return reversed
}
func main() {
tmp := []int{1, 4, 9}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))
tmp = []int{1, 4, 9, 16, 25, 36, 49}
fmt.Println(tmp)
fmt.Println(FiveSteps(tmp))
}