Golang : Fix - does not implement sort.Interface (missing Len method)
Problem:
You are trying to use the sort.Sort()
or sort.Reverse()
functions on type []string
data but encounter this error message:
cannot use strSlice (type []string) as type sort.Interface in argument to sort.Sort: []string does not implement sort.Interface (missing Len method)
What's going on and how to fix this?
Solution:
Cast the []string
slice/array to type StringSlice or if you are dealing integer or float - cast to IntSlice or Float64Slice type first before using the sort.Sort()
function.
To cast/convert the []string
slice/array, use sort.StringSlice()
function.
For example:
package main
import (
"fmt"
"sort"
"strings"
)
func main() {
str := "Dog,Apple,Cat,Boy"
strSlice := strings.Split(str, ",")
fmt.Println("Before : ", strSlice)
sortableStrSlice := sort.StringSlice(strSlice) <------- here!
sort.Sort(sortableStrSlice)
fmt.Println("After : ", sortableStrSlice)
}
Output:
Before : [Dog Apple Cat Boy]
After : [Apple Boy Cat Dog]
Happy coding!
See also : Golang : Reverse IP address for reverse DNS lookup example
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
+19.9k Golang : Convert(cast) bytes.Buffer or bytes.NewBuffer type to io.Reader
+9.1k nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
+9.3k Golang : Create unique title slugs example
+7.4k Golang : Rename part of filename
+5.5k Unix/Linux : How to find out the hard disk size?
+5.4k How to check with curl if my website or the asset is gzipped ?
+5.7k Golang : Fix opencv.LoadHaarClassifierCascade The node does not represent a user object error
+17.8k Golang : Qt image viewer example
+9.4k Golang : Qt Yes No and Quit message box example
+4.7k Facebook : How to place save to Facebook button on your website
+5k Linux/Unix/MacOSX : Find out which application is listening to port 80 or use which IP version
+7.6k Golang : Mapping Iban to Dunging alphabets