Golang语言社区--结构体数据排序

Golang语言社区--结构体数据排序,第1张

概述原文地址:http://www.golang.ltd/forum.php?mod=viewthread&tid=2816&extra=page%3D1 作者:彬哥 结构体,数据排序 package main import (         "fmt"         "sort"         "strconv" ) var testmap map[string]Person type Per

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

作者:彬哥


结构体,数据排序

@H_419_18@ package main

import (
"fmt"
"sort"
"strconv"
)
var testmap map[string]Person
type Person struct {
name string
Ageint
Sexstring
} type ByAge []Person
func (a ByAge) Len() int { return len(a) }
func (a ByAge) Swap(i,j int) { a[i],a[j] = a[j],a[i] }

func (a ByAge) Less(i,j int) bool { return a[i].Age > a[j].Age } // 从大到小排序
func init() {
testmap = make(map[string]Person)
var testmap1 Person
testmap1.name = "John"
testmap1.Age = 31
testmap1.Sex = "1"
testmap["3"] = testmap1
testmap1.name = "Bob1"
testmap["0"] = testmap1
testmap1.name = "Bob"
testmap["2"] = testmap1
testmap1.name = "John1"
testmap["4"] = testmap1
testmap1.name = "John2"
testmap["5"] = testmap1
testmap1.name = "John3"
testmap["6"] = testmap1
}
func main() {
fmt.Println(len(testmap))
people := make([]Person,len(testmap))
// 1 结构提取值获取数据 append
for key,second := range testmap {
ikey,_ := strconv.Atoi(key)
fmt.Println(people) // 从0开始的
people = append(people,people[ikey])
people[ikey] = second
}
// 排序
sort.sort(ByAge(people))
fmt.Println(people)
// 获取数据值
fmt.Println(key) // 从0开始的
fmt.Println(second.name)

} 复制代码 总结

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

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1274624.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-08
下一篇 2022-06-08

发表评论

登录后才能评论

评论列表(0条)

保存