But you also have to implement Len() and Less(), don't you?
Maybe you can create a better way, but it is not implemented in the sort package by default.
Also I suppose you need to "convert" your list to some other type with the said functions provided (dervied from the standard go lists, forgot the name). Maybe that is a standard go mechanism, but it still amounts to more lines of code.
Maybe complicated is the wrong word, longwinded might be better?
func (s Organs) Swap(i, j int) { s[i], s[j] = s[j], s[i] }
http://golang.org/pkg/sort/#example_Interface
Also note two things:
- This is the efficient and type safe way to handle polymorphism in Go
- The standard packages documentation is very nice with live, runnable examples