>>17が丸ごとcopyしないセンスある実装を晒してくれなかったので書いてみた。

func ReverseArray(arr []int) []int {
  n := len(arr)
  result := make([]int, n)
  var reverseArray func(int)
  reverseArray = func(i int) {
    if i < n {
      result[i] = arr[n - 1 - i]
      reverseArray(i + 1)
    }
  }
  reverseArray(0)
  return result
}

やはりセンスある感じではないな。素直に for で繰り返した方が素直な感じ。