Home
Go
String Reverse
Updated May 19, 2023
Dot Net Perls
Reverse string. Sometimes in programs we want to reverse the characters in a string. This can generate a key from existing data. A string cannot be directly sorted.
Instead, we must act on the string at the level of its runes or bytes. Runes in Go are most similar to characters. We can convert strings to rune slices and then reverse those.
Example func. Let us start. Here we introduce the reverse() method. This method receives a string and returns another string. We begin by converting the string argument to a slice of runes.
func
Tip Runes can represent more than one byte. Runes support 2-byte characters. Logically a rune is a character.
Here We use a for-loop, with a decrementing iteration, to access our slice of runes. We build up a slice of the runes in reverse order.
for
Return Our func returns a string based on the reversed contents of the rune slice. We just use runes internally to process the string.
package main import "fmt" func reverse(value string) string { // Convert string to rune slice. // ... This method works on the level of runes, not bytes. data := []rune(value) result := []rune{} // Add runes in reverse order. for i := len(data) - 1; i >= 0; i-- { result = append(result, data[i]) } // Return new string. return string(result) } func main() { // Test our method. value1 := "cat" reversed1 := reverse(value1) fmt.Println(value1) fmt.Println(reversed1) value2 := "abcde" reversed2 := reverse(value2) fmt.Println(value2) fmt.Println(reversed2) }
cat tac abcde edcba
Some notes. In Go, we can access the bytes of a string instead of converting the string to a rune slice. And we can reverse these bytes.
But For a string with 2-byte chars, runes will preserve the data. Accessing bytes will meanwhile cause some corruption.
Important For a simple method like string reversal, keeping the data correct is probably more important than max performance.
A review. Strings can be manipulated in many ways by first converting them to rune slices. We can reorder or modify runes. This is powerful, versatile, and can be used to reverse strings.
Dot Net Perls is a collection of pages with code examples, which are updated to stay current. Programming is an art, and it can be learned from examples.
Donate to this site to help offset the costs of running the server. Sites like this will cease to exist if there is no financial support for them.
Sam Allen is passionate about computer languages, and he maintains 100% of the material available on this website. He hopes it makes the world a nicer place.
This page was last updated on May 19, 2023 (edit).
Home
Changes
© 2007-2025 Sam Allen