對資料結構進行排序是程式設計中的一項基本任務,Go 提供了多種方法來處理此問題。特別是,根據任意欄位名稱進行排序時,結構體陣列會帶來挑戰。
考慮以下 Go 碼:
我們如何排序行星以軸場排列?
最近Go 版本中,sort.Slice 函數提供了一種基於自訂比較函數對切片進行排序的有效方法。
這裡,i 和 j 是切片中元素的索引,比較函數傳回如果索引 i 處的元素應該位於索引 j 處的元素之前,則為 true。在本例中,我們正在比較行星的軸場。
請注意,使用陣列(而不是切片)時,需要使用切片覆蓋運算子 [:] 將陣列轉換為切片。
透過利用 sort.Slice,我們實現了基於任意欄位名稱的結構體數組的簡單高效的排序。這為 Go 中的複雜資料結構排序提供了類似 Python 的體驗。
以上是如何透過自訂欄位名稱對 Go 結構體陣列進行高效排序?的詳細內容。更多資訊請關注PHP中文網其他相關文章!