構造体を time.Time フィールドでソート
Go で構造体を time.Time フィールドでソートしようとしています。問題が発生しました。あなたが提供したコードフラグメントには、reviews_data 構造体のスライスとマップを使用したカスタム並べ替え実装が含まれています:
type timeSlice []reviews_data func (p timeSlice) Len() int { return len(p) } func (p timeSlice) Less(i, j int) bool { return p[i].date.Before(p[j].date) } func (p timeSlice) Swap(i, j int) { p[i], p[j] = p[j], p[i] }
ただし、報告された問題は、結果が正しく並べ替えられないことです。これには、いくつかの理由が考えられます。
改善された解決策 (Go 1.8 以降):
Go 1.8 で導入された sort.Slice 関数の使用、並べ替えコードを簡素化できます:
sort.Slice(timeSlice, func(i, j int) bool { return timeSlice[i].date.Before(timeSlice[j].date) })
これにより改善されましたソリューションは標準ライブラリの並べ替え機能を使用し、より信頼性が高く効率的な並べ替えプロセスを保証します。
以上がGo 構造体を time.Time フィールドで正しく並べ替える方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。