gpt4 book ai didi

sorting - 去 sort.IntSlice() 实现

转载 作者:行者123 更新时间:2023-12-01 22:41:26 25 4
gpt4 key购买 nike

我正在查找如何对 Go 数组进行反向排序:

sort.Sort(sort.Reverse(sort.IntSlice(s))) // s is the slice of ints
我在 https://godoc.org/sort 查看了 go 文档的 sort pkg
我看到有一种 IntSlice,但没有用于排序包的 IntSlice() 方法
有人可以解释一下 IntSlice() 是如何实现的,或者为什么它在 sort pkg 中不存在?

最佳答案

因此,在写出这个问题时,我查看了 IntSlice 类型的源代码,并意识到 IntSlice() 不是 sort pkg 的函数,而是 []int 的别名,因此 sort.IntSlice(s) 将 slice s 转换为 IntSlice 类型。
我们需要将 []int 转换为 IntSlice 类型的原因是因为 sort.Reverse() 需要一个接口(interface)类型,并且必须实现 Len()、Swap()、Less(),而 []int 没有实现。
这也让我想起了 Donovan 和 Kernighan 写的关于接口(interface)的另一点,因为我们可能无法修改具体类型,但我们可以通过接口(interface)扩展功能,它让我觉得这是一个示例 b/c []int 是底层类型作为 Go 语言规范的一部分,但是 sort pkg 通过接口(interface)接口(interface)扩展了行为。

关于sorting - 去 sort.IntSlice() 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62856483/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com