2017-01-12 9 views
1

[]uintのスライスをソートしたいと思います。これは理にかなっていますか? uintが見つからないものがありますか? sort packageにはIntSliceFloat64Sliceがありますが、uintでは何もありません。Goで符号なし整数をソート

uintはソート可能ある場合、私はちょうど彼らがsort.IntSliceのために使用してきたことをLen()Less(i, j int)Swap(i, j int)ための同じ実装をコピーすることができますか?

+3

どうしてソートできないのですか?ソートパッケージではすべてのタイプのソートが実装されておらず、符号なしの値は通常は序数には使用されないため、ソートするのは一般的ではありません – JimB

+0

私は分かりません。同じやり方で。あなたが言うように、それらは一般に公称値として使用され、 'var x uint32 = math.MaxUint32;のような奇妙なエッジケースがあります。 x + 1 == 0 'となる。 – Dave

答えて

3

1.7については、sort.Interfaceを実装するスライスを[]スライスのエイリアスタイプとして並べ替えて、sort.Sort(Interface)を使用して並べ替えることができます。 Go 1.8では、sort.Sliceを使用するオプションがあります。例を見てくださいhere

+1

ああ、それは素晴らしいです、ありがとう!ソートを反映させるために使われた 'reflect.Swapper'を見るのは本当に面白いです。 1.8へ進むことを楽しみにしています。 – Dave

関連する問題