【golang】golang 字符串切片排序

简介: 【golang】golang 字符串切片排序

按字母排序

strs := []string{"c", "b", "a"}
sort.Strings(strs)
// strs is now ["a", "b", "c"]

自定义排序

strs := []string{"c", "b", "a"}
sort.Slice(strs, func(i, j int) bool {
    return strs[i] < strs[j]  // 字母序排序
})  
// strs is now ["a", "b", "c"]
 

排序反转


strs := []string{"c", "b", "a"}
sort.Strings(strs)     // ["a", "b", "c"]
sort.Reverse(strs) 
// strs is now ["c", "b", "a"]

结构体排序

对结构体切片排序时,需要传递一个自定义排序函数sort.Slice()或sort.Sort(),指定按哪个字段排序。例如:

type User struct {
    Name string
    Age  int
}

users := []User{
    {"Bob", 31},
    {"John", 42},
    {"Michael", 17},
}

// 按Age排序
sort.Slice(users, func(i, j int) bool {
    return users[i].Age < users[j].Age
})
目录
相关文章
|
3月前
|
Go
Golang语言之切片(slice)快速入门篇
这篇文章是关于Go语言中切片(slice)的快速入门教程,详细介绍了切片的概念、定义方式、遍历、扩容机制、使用注意事项以及相关练习题。
36 5
|
3月前
|
Go
Golang语言基本数据类型默认值及字符串之间互相转换案例
这篇文章讲解了Golang语言中基本数据类型的默认值、类型转换的概述以及整型、浮点型、字符串之间的相互转换案例,包括如何将基本数据类型转换为字符串类型和字符串类型转换为基本数据类型,以及字符串与字节切片之间的转换。
29 2
|
3月前
|
Go
Golang语言基础数据类型之字符串常用的操作
这篇文章介绍了Golang语言中字符串的定义、常用操作,包括字符串长度查看、遍历、类型转换、子串统计、比较、查找位置、替换、切割、大小写转换、剔除字符、前缀后缀判断、拼接、子串包含判断以及字符串join操作,同时提供了官方文档的查看方法。
25 1
|
4月前
|
Go
[golang]字符串拼接
[golang]字符串拼接
|
4月前
|
存储 程序员 编译器
Golang 中的字符串:常见错误和最佳实践
Golang 中的字符串:常见错误和最佳实践
|
4月前
|
Go 开发者
|
4月前
|
监控 Serverless Go
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
Golang 开发函数计算问题之Go 语言中切片扩容时需要拷贝原数组中的数据如何解决
|
6月前
|
Go
【golang】Go 判断字符串是否包含指定字符
【golang】Go 判断字符串是否包含指定字符
82 1
|
7月前
|
Go 索引
Golang深入浅出之-切片(Slices)入门:创建、操作与扩容机制
【4月更文挑战第20天】Go语言中的切片是动态数组,提供灵活的操作和自动扩容。本文介绍了切片的创建(通过`make()`、数组创建和切片字面量)、基本操作(索引访问、切片、赋值追加和遍历)以及扩容机制(首次和后续扩容策略)。此外,还强调了切片与底层数组的关系、切片越界问题、`append()`的使用以及理解切片的关键点,帮助提升Go编程效率和代码质量。
157 0
|
7月前
|
存储 Go 开发者
Golang深入浅出之-Go语言字符串操作:常见函数与面试示例
【4月更文挑战第20天】Go语言字符串是不可变的字节序列,采用UTF-8编码。本文介绍了字符串基础,如拼接(`+`或`fmt.Sprintf()`)、长度与索引、切片、查找与替换(`strings`包)以及转换与修剪。常见问题包括字符串不可变性、UTF-8编码处理、切片与容量以及查找与替换的边界条件。通过理解和实践这些函数及注意事项,能提升Go语言编程能力。
199 0