对结构体指定字段进行排序: 对结构体指定字段进行排序: package main import ( "fmt" "sort") // 对结构体指定字段进行排序type User struct { name string `Json:"name"` // `Json:"xxx"`:在结构体和Json字符串字段顺序不一致的情况下:unmarshal根据tag去寻找对应字段的内容 Age int `Json:"age"`} // type Users []User// func SortByAge(u Users) {func SortByAge(u []User) { fmt.Printf("源数据:%+v\n", u) sort.Slice(u, func(i, j int) bool { // desc return u[i].Age > u[j].Age }) fmt.Printf("按Age降序:%+v\n", u) sort.Slice(u, func(i, j int) bool { // asc return u[i].Age < u[j].Age }) fmt.Printf("按Age升序:%+v\n", u)} func main() { // 初始化结构体对象数组: // 初始化方法1: // users := Users{ // { // name: "test1", // Age: 22, // }, // { // name: "test2", // Age: 19, // }, // { // name: "test3", // Age: 25, // }, // } // 初始化方法2: var users []User var u User u.name = "test1" u.Age = 22 users = append(users, u) u.name = "test2" u.Age = 20 users = append(users, u) u.name = "test3" u.Age = 26 users = append(users, u) SortByAge(users)} // 输出:源数据:[{name:test1 Age:22} {name:test2 Age:20} {name:test3 Age:26}]按Age降序:[{name:test3 Age:26} {name:test1 Age:22} {name:test2 Age:20}]按Age升序:[{name:test2 Age:20} {name:test1 Age:22} {name:test3 Age:26}] 此外也可使用sort.sort()方法,不过需要自己去实现 Len()、Swap()、Less()方法,参考:golang对自定义类型排序另外,通过借助“结构体指定字段进行排序”解了一道LeetCode 347题:传送门
总结
以上是内存溢出为你收集整理的Go 通过结构体指定字段进行排序全部内容,希望文章能够帮你解决Go 通过结构体指定字段进行排序所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)