スライスの並べ替えは Golang でよく使用される関数であり、sort.Slice 関数を使用してすぐに実装できます。この関数を使用すると、カスタム比較関数を渡すことでスライスを並べ替えることができます。
sort.Slice関数は次のように定義されています。
func Slice(slice interface{}, less func(i, j int) bool)
このうち、sliceパラメータはソート対象のスライスを指定し、lessパラメータは比較規則を定義するための比較関数です。スライス要素の。
以下は、sort.Slice 関数を使用してスライスを並べ替える方法を示すサンプル コードです。
package main import ( "fmt" "sort" ) type Person struct { Name string Age int } type Persons []Person func (p Persons) Len() int { return len(p) } func (p Persons) Less(i, j int) bool { return p[i].Age < p[j].Age } func (p Persons) Swap(i, j int) { p[i], p[j] = p[j], p[i] } func main() { persons := Persons{ {"Alice", 25}, {"Bob", 30}, {"Charlie", 20}, {"David", 35}, } fmt.Println("Before sort:", persons) sort.Slice(persons, func(i, j int) bool { return persons[i].Age < persons[j].Age }) fmt.Println("After sort:", persons) }
上記のコードでは、パーソン構造体とパーソン スライス タイプを定義します。 Persons タイプは、並べ替えパッケージに 3 つのインターフェイス (Len、Less、および Swap) を実装しており、これにより、人を並べ替えることができることを示します。
main 関数では、次のコードで人物スライス インスタンスを定義し、sort.Slice 関数を使用してスライスを並べ替えます。この場合、less パラメーターとして匿名関数を渡すことによって、Person.Age フィールドによって昇順に並べ替える方法を定義します。
最後にソート結果を出力すると、ソートが完了していることがわかります。
概要:
sort.Slice 関数は、Golang でのスライス ソートのショートカットです。さまざまな比較関数を渡すことで、さまざまな照合順序を定義できます。 sort.Slice で比較関数を渡す場合、匿名関数または sort インターフェイスを実装する構造体を使用できます。
以上がgolangのsort.Slice関数を使用してスライスを並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。