在Go中按任意字段对结构体切片进行排序的最简单方法是什么?
大家好!我是Go语言新手,一直搞不清楚如何对结构体切片进行排序。假设我有这样一段代码:
```go
type Person struct {
Name string
Age int
}
people := []Person{
{"Alice", 30},
{"Bob", 25},
{"Charlie", 35},
}
```
我想按`Name`字段(按字母顺序)对这个切片进行排序。然后,可能还要按`Age`字段(升序)排序。在其他语言(比如Python)中,我只需传递一个排序键:`sorted(people, key=lambda p: p.name)`。但在Go中,我看到需要编写一个单独的类型,实现`sort.Interface`接口的三个方法——`Len()`、`Less()`、`Swap()`。这太冗长了!
有没有更简短、更优雅的方法?也许有某种内置函数或包,允许我直接指定字段名?还是说我每次排序都得写10行代码?提前感谢帮助!
<<>>