go:自定義結構體排序,結構體二級排序

go 的自定義排序

type entity struct{
	Id int64
	UserLongtitude float64
	UserLatitude float64
	Longitude float64
	Latitude float64
}
type list []*entity
func (s list) Len() int {
	return len(s)
}
func (s list) Swap(i, j int) {
	s[i], s[j] = s[j], s[i]
}
func (s list) Less(i, j int) bool {
	disA := (s[i].UserLatitude - s[i].Latitude) * (s[i].UserLatitude - s[i].Latitude) +
		(s[i].UserLongtitude - s[i].Longitude) * (s[i].UserLongtitude - s[i].Longitude)
	disB := (s[j].UserLatitude - s[j].Latitude) * (s[j].UserLatitude - s[j].Latitude) +
		(s[j].UserLongtitude - s[j].Longitude) * (s[j].UserLongtitude - s[j].Longitude)
	return disA < disB
}
func main(){
	var t list
	.....// 賦值
	sort.Sort()
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章