Go 言語での並べ替えの実装は、主に sort パッケージを通じて実装されます。sort パッケージは、さまざまな種類のデータを簡単に並べ替えることができるように、標準の並べ替えインターフェイスを提供します。この記事では、golangでソートするためのsortパッケージの使い方を紹介します。
sort パッケージの実装原理
sort パッケージは主に sort.Interface インターフェイスを介してソートを実装しており、3 つのメソッドがあります:
sort パッケージには、ソート用の次の関数が用意されています。
サンプル コード
次は、int 型のスライスを並べ替えるサンプル コードです:
package main import ( "fmt" "sort" ) func main() { data := []int{9, 6, 3, 8, 5, 2, 7, 4, 1} sort.Ints(data) fmt.Println(data) }
出力結果は次のとおりです:
[1 2 3 4 5 6 7 8 9]
The以下は、sort.Interface インターフェイスを使用した並べ替えのサンプル コードです。
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } type ByName []Person func (this ByName) Len() int { return len(this) } func (this ByName) Less(i, j int) bool { return this[i].Name < this[j].Name } func (this ByName) Swap(i, j int) { this[i], this[j] = this[j], this[i] } func main() { people := []Person{ {"Bob", 31}, {"John", 42}, {"Jane", 29}, {"Michael", 17}, {"Chris", 51}, {"Sarah", 37}, } sort.Sort(ByName(people)) fmt.Println(people) }
出力結果は次のとおりです。
[{Bob 31} {Chris 51} {Jane 29} {John 42} {Michael 17} {Sarah 37}]
上記のコードは、最初に Person 構造体と ByName 型を定義します。 ByName 型は、sort.Interface インターフェイスの 3 つのメソッドを実装します。これらは、2 つの要素を比較する方法と要素を交換する方法を並べ替えパッケージに指示するために使用されます。次に、People 型データを格納するために people 変数が定義されます。最後に、sort.Sort 関数を呼び出して、人物を名前の昇順に並べ替えて結果を出力します。
概要
この記事では、golang でソートにソートパッケージを使用する方法、ソートパッケージの実装原理、サンプルコードを紹介します。データ型を並べ替えるには、sort.Interface インターフェイスに 3 つのメソッドを実装するだけで済みます。sort パッケージには、int、float64、string などの一般的なデータ型の並べ替え関数がすでに提供されています。使用する場合は、次のことだけを行う必要があります。キャンに電話します。
以上がgolangでソートにsortパッケージを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。