【go技巧】结构体类型的切片按照从小到大排序 您所在的位置:网站首页 数组切片go 【go技巧】结构体类型的切片按照从小到大排序

【go技巧】结构体类型的切片按照从小到大排序

2023-06-15 20:43| 来源: 网络整理| 查看: 265

目录

结构体类型的切片按照从小到大排序

结构体类型的切片按照从小到大排序

可以使用 Go 语言中的 sort.Slice() 函数对结构体类型的切片进行排序。该函数接受一个切片和一个 less 函数作为参数,less 函数用于比较切片中的元素并按照指定顺序排序。

下面是一个示例代码,演示了如何使用 sort.Slice() 对结构体类型的切片按照从小到大排序:

package main import ( "fmt" "sort" ) type Person struct { Name string Age int Gender string } func main() { persons := []Person{ {Name: "Alice", Age: 25, Gender: "Female"}, {Name: "Bob", Age: 30, Gender: "Male"}, {Name: "Charlie", Age: 20, Gender: "Male"}, {Name: "David", Age: 35, Gender: "Male"}, {Name: "Eva", Age: 28, Gender: "Female"}, } fmt.Println("Before sorting:", persons) // 使用 sort.Slice() 对结构体类型的切片进行排序 sort.Slice(persons, func(i, j int) bool { return persons[i].Age < persons[j].Age }) fmt.Println("After sorting:", persons) }

在这个示例代码中,我们首先定义了一个包含多个 Person 结构体的切片 persons。然后,在输出原始切片的值后,我们调用 sort.Slice() 函数对其进行从小到大的排序。在 less 函数中,我们定义了比较函数,按照 Age 字段进行比较,因此最终切片将按照从小到大的年龄顺序排列。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有