Golang : Sort and reverse sort a slice of runes
Problem :
How to sort and reverse sort a slice of runes ?
Solution :
Sorting runes depends on the integer value of the rune and it will be ordered according to the integer values . Here's an example of how to sort slice of runes :
package main
import (
"fmt"
"sort"
)
type RuneSlice []rune
func (p RuneSlice) Len() int { return len(p) }
func (p RuneSlice) Less(i, j int) bool { return p[i] < p[j] }
func (p RuneSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
var runes RuneSlice = []rune{'可', '愛'} // sort based on the integer values of the runes
func main() {
// Runes
fmt.Println("Original : ", runes[:])
fmt.Println("Original : ", string(runes[:]))
sort.Sort(RuneSlice(runes))
fmt.Println("Sort : ", runes[:])
fmt.Println("Sort : ", string(runes[:]))
sort.Sort(sort.Reverse(runes[:]))
fmt.Println("Reverse : ", runes[:])
fmt.Println("Reverse : ", string(runes[:]))
}
Output :
Original : [21487 24859]
Original : 可愛
Sort : [21487 24859]
Sort : 可愛
Reverse : [24859 21487]
Reverse : 愛可
UPDATE : You can import "github.com/cznic/sortutil" and use the RuneSlice.Sort() method ( see http://godoc.org/github.com/cznic/sortutil#RuneSlice ) as well if you prefer.
See also : Golang : Sort and reverse sort a slice of bytes
By Adam Ng
IF you gain some knowledge or the information here solved your programming problem. Please consider donating to the less fortunate or some charities that you like. Apart from donation, planting trees, volunteering or reducing your carbon footprint will be great too.
Advertisement
Tutorials
+33.5k Golang : Upload and download file to/from AWS S3
+12.8k Golang : Chunk split or divide a string into smaller chunk example
+4.8k Cash Flow : 50 days to pay your credit card debt
+6.7k Golang : Ways to recover memory during run time.
+10.1k Use systeminfo to find out installed Windows Hotfix(s) or updates
+12.6k Golang : Gin framework accept query string by post request example
+8.3k Golang : How to generate Code 39 barcode?
+8.2k Golang : Extract or copy items from map based on value
+15.7k Golang : Find file size(disk usage) with filepath.Walk
+16k Golang : How to save log messages to file?
+11.7k Golang : Skip blank/empty lines in CSV file and trim whitespaces example
+5.5k Golang : Find the longest line of text example