mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-11-13 09:16:10 +08:00
11.5-11.7
This commit is contained in:
@@ -1,8 +1,7 @@
|
||||
# 11.7 第一个例子:使用Sorter接口排序
|
||||
# 11.7 第一个例子:使用 Sorter 接口排序
|
||||
|
||||
一个很好的例子是来自标准库的 `sort` 包,要对一组数字或字符串排序,只需要实现三个方法:反映元素个数的 `Len()`方法、比较第 `i` 和 `j` 个元素的 `Less(i, j)` 方法以及交换第 `i` 和 `j` 个元素的 `Swap(i, j)` 方法。
|
||||
|
||||
|
||||
排序函数的算法只会使用到这三个方法(可以使用任何排序算法来实现,此处我们使用冒泡排序):
|
||||
|
||||
```go
|
||||
@@ -17,7 +16,7 @@ func Sort(data Sorter) {
|
||||
}
|
||||
```
|
||||
|
||||
`Sort` 函数接收一个接口类型参数: `Sorter` ,它声明了这些方法:
|
||||
`Sort` 函数接收一个接口类型参数:`Sorter` ,它声明了这些方法:
|
||||
|
||||
```go
|
||||
type Sorter interface {
|
||||
@@ -27,7 +26,7 @@ type Sorter interface {
|
||||
}
|
||||
```
|
||||
|
||||
参数中的 `int` 不是说要排序的对象一定要是一组 `int`,`i` 和 `j` 表示元素的整型索引,长度也是整型的。
|
||||
参数中的 `int` 不是说要排序的对象一定要是一组 `int`、`i` 和 `j` 表示元素的整型索引,长度也是整型的。
|
||||
|
||||
现在如果我们想对一个 `int` 数组进行排序,所有必须做的事情就是:为数组定一个类型并在它上面实现 `Sorter` 接口的方法:
|
||||
|
||||
|
||||
Reference in New Issue
Block a user