Sometimes you have the necessity to obtain a string, but reversed, but how to do this with Go?
Unfortunately Go has nothing built-in, so you have to use a custom function to achieve it.

The best solution is the following, where every character is transformed in a rune so it won't break with special encodings and all without the need to import any package.

func reverse(s string) string {
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}


If you want to test it out, you can write a simple program like this:

package main

import "fmt"

func main() {
str := "The quick brown 狐 jumped over the lazy 犬"
fmt.Println(reverse(str))
}

func reverse(s string) string {
runes := []rune(s)
for i, j := 0, len(runes)-1; i < j; i, j = i+1, j-1 {
runes[i], runes[j] = runes[j], runes[i]
}
return string(runes)
}


The function will return this: 犬 yzal eht revo depmuj 狐 nworb kciuq ehT.

If you don't believe me, try it in the interactive Go Playground!