Go   发布时间:2022-04-09  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Golang语言社区--结构体数据排序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

原文地址:http://www.golang.ltd/forum.PHP?mod=viewthread&tid=2816&extra=page%3D1

作者:彬哥


结构体,数据排序

  1. package main

  2. import (
  3. "fmt"
  4. "sort"
  5. "strconv"
  6. )
  7. var testmap map[@R_616_10495@ng]Person
  8. type Person struct {
  9. Name @R_616_10495@ng
  10. Ageint
  11. Sex@R_616_10495@ng
  12. }
  13. type ByAge []Person
  14. func (a ByAgE) Len() int { return len(a) }
  15. func (a ByAgE) Swap(i,j int) { a[i],a[j] = a[j],a[i] }

  16. func (a ByAgE) Less(i,j int) bool { return a[i].Age > a[j].Age } // 从大到小排序
  17. func init() {
  18. testmap = make(map[@R_616_10495@ng]Person)
  19. var testmap1 Person
  20. testmap1.Name = "John"
  21. testmap1.Age = 31
  22. testmap1.Sex = "1"
  23. testmap["3"] = testmap1
  24. testmap1.Name = "Bob1"
  25. testmap["0"] = testmap1
  26. testmap1.Name = "Bob"
  27. testmap["2"] = testmap1
  28. testmap1.Name = "John1"
  29. testmap["4"] = testmap1
  30. testmap1.Name = "John2"
  31. testmap["5"] = testmap1
  32. testmap1.Name = "John3"
  33. testmap["6"] = testmap1
  34. }
  35. func main() {
  36. fmt.Println(len(testmap))
  37. people := make([]Person,len(testmap))
  38. // 1 结构提取值获取数据 append
  39. for key,second := range testmap {
  40. ikey,_ := strconv.Atoi(key)
  41. fmt.Println(peoplE) // 从0开始的
  42. people = append(people,people[ikey])
  43. people[ikey] = second
  44. }
  45. // 排序
  46. sort.sort(ByAge(peoplE))
  47. fmt.Println(peoplE)
  48. // 获取数据值
  49. decimal-leading-zero; font-family:Monaco,second := range people {
  50. fmt.Println(key) // 从0开始的
  51. fmt.Println(second.Name)

  52. }
复制代码

大佬总结

以上是大佬教程为你收集整理的Golang语言社区--结构体数据排序全部内容,希望文章能够帮你解决Golang语言社区--结构体数据排序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。