11.5-11.7

This commit is contained in:
Unknwon
2015-09-12 14:39:14 -04:00
parent 4e7e7c93e2
commit f73e6305fe
5 changed files with 12 additions and 11 deletions

View File

@@ -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` 接口的方法: