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()
}