go语言中的sort.Slice()
时间: 2024-04-24 18:25:21 浏览: 30
sort.Slice() 函数是 Go 语言中用于对切片进行排序的函数。它使用用户提供的 less 函数来确定元素的顺序,并可以按升序或降序对切片进行排序。
函数的签名如下:
```go
func Slice(slice interface{}, less func(i, j int) bool)
```
其中,`slice` 参数是待排序的切片,`less` 参数是一个函数,用于确定元素的顺序。`less` 函数接受两个参数 `i` 和 `j` ,返回一个布尔值,表示 `i` 是否在 `j` 之前。
下面是一个示例:
```go
package main
import (
"fmt"
"sort"
)
func main() {
nums := []int{5, 2, 7, 1, 8, 3}
fmt.Println("Before sorting:", nums)
sort.Slice(nums, func(i, j int) bool {
return nums[i] < nums[j]
})
fmt.Println("After sorting in ascending order:", nums)
sort.Slice(nums, func(i, j int) bool {
return nums[i] > nums[j]
})
fmt.Println("After sorting in descending order:", nums)
}
```
在该示例中,我们创建了一个包含一些整数的切片 `nums`,然后分别使用 `sort.Slice()` 函数对切片进行升序和降序排序。通过传递不同的 `less` 函数,我们可以指定不同的排序顺序。
输出结果如下:
```
Before sorting: [5 2 7 1 8 3]
After sorting in ascending order: [1 2 3 5 7 8]
After sorting in descending order: [8 7 5 3 2 1]
```
可以看到,切片在经过排序后,按照指定的顺序重新排列了元素。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)