Type safety, and the lack of fields in interfaces. In C you have to pass the size of the elements to quicksort, but in Go you can't do that without using the unsafe module. So you need a virtual Swap() method. And because Go needs to take a single interface, and interfaces in Go can't have fields, you need a Len() method as well.
Comments
Genuinely interested: do you have a trick for making sorting a collection less copy-and-pasty?
I made a bash script for this purpose, but I have actually only used it twice to be honest.
could you elaborate - what is this about ? Go newbie here.
To sort an array/collection in Go, you must implement an interface with 3 methods: https://gobyexample.com/sorting-by-functions
It's boilerplate, which generic methods would avoid.
There are shortcuts for sorting common types by their natural order in Go, so you only have to write this for custom types or custom orderings.
I am not sure I understand why you need generics for this, doesn't C get by passing a single function pointer?
Could you explain why Go needs an interface with 3 methods?
Type safety, and the lack of fields in interfaces. In C you have to pass the size of the elements to quicksort, but in Go you can't do that without using the unsafe module. So you need a virtual Swap() method. And because Go needs to take a single interface, and interfaces in Go can't have fields, you need a Len() method as well.
thanks I think I understand now.