|
@@ -195,17 +195,17 @@ type Interface interface {
|
|
|
|
|
|
|
|
这个接口总结了需要用于排序的抽象方法,函数 `Sort(data Interface)` 用来对此类对象进行排序,可以用它们来实现对其他数据(非基本类型)进行排序。在上面的例子中,我们也是这么做的,不仅可以对 `int` 和 `string` 序列进行排序,也可以对用户自定义类型 `dayArray` 进行排序。
|
|
这个接口总结了需要用于排序的抽象方法,函数 `Sort(data Interface)` 用来对此类对象进行排序,可以用它们来实现对其他数据(非基本类型)进行排序。在上面的例子中,我们也是这么做的,不仅可以对 `int` 和 `string` 序列进行排序,也可以对用户自定义类型 `dayArray` 进行排序。
|
|
|
|
|
|
|
|
-练习 11.5:interfaces_ext.go
|
|
|
|
|
|
|
+**练习 11.5** interfaces_ext.go:
|
|
|
|
|
|
|
|
a). 继续扩展程序,定义类型 `Triangle`,让它实现 `AreaInterface` 接口。通过计算一个特定三角形的面积来进行测试(三角形面积=0.5 * (底 * 高))
|
|
a). 继续扩展程序,定义类型 `Triangle`,让它实现 `AreaInterface` 接口。通过计算一个特定三角形的面积来进行测试(三角形面积=0.5 * (底 * 高))
|
|
|
|
|
|
|
|
b). 定义一个新接口 `PeriInterface`,它有一个 `Perimeter` 接口。让 `Square` 实现这个接口,并通过一个 `Square` 示例来测试它。
|
|
b). 定义一个新接口 `PeriInterface`,它有一个 `Perimeter` 接口。让 `Square` 实现这个接口,并通过一个 `Square` 示例来测试它。
|
|
|
|
|
|
|
|
-练习 11.6:point_interfaces.go
|
|
|
|
|
|
|
+**练习 11.6** point_interfaces.go:
|
|
|
|
|
|
|
|
继续 10.3 中的练习 point_methods.go,定义接口 `Magnitude`,它有一个方法 `Abs()`。让 `Point`、`Point3` 及`Polar` 实现此接口。通过接口类型变量使用方法做point.go中同样的事情。
|
|
继续 10.3 中的练习 point_methods.go,定义接口 `Magnitude`,它有一个方法 `Abs()`。让 `Point`、`Point3` 及`Polar` 实现此接口。通过接口类型变量使用方法做point.go中同样的事情。
|
|
|
|
|
|
|
|
-练习 11.7:float_sort.go / float_sortmain.go
|
|
|
|
|
|
|
+**练习 11.7** float_sort.go / float_sortmain.go:
|
|
|
|
|
|
|
|
类似11.7和示例11.3/4,定义一个包 `float64`,并在包里定义类型 `Float64Array`,然后让它实现 `Sorter` 接口用来对 `float64` 数组进行排序。
|
|
类似11.7和示例11.3/4,定义一个包 `float64`,并在包里定义类型 `Float64Array`,然后让它实现 `Sorter` 接口用来对 `float64` 数组进行排序。
|
|
|
|
|
|
|
@@ -217,7 +217,7 @@ b).
|
|
|
|
|
|
|
|
在主程序中新建一个此类型的变量,然后对它排序并进行测试。
|
|
在主程序中新建一个此类型的变量,然后对它排序并进行测试。
|
|
|
|
|
|
|
|
-练习 11.8:sort.go / sort_persons.go
|
|
|
|
|
|
|
+**练习 11.8** sort.go/sort_persons.go:
|
|
|
|
|
|
|
|
定义一个结构体 `Person`,它有两个字段:`firstName` 和 `lastName`,为 `[]Person` 定义类型 `Persons` 。让 `Persons` 实现 `Sorter` 接口并进行测试。
|
|
定义一个结构体 `Person`,它有两个字段:`firstName` 和 `lastName`,为 `[]Person` 定义类型 `Persons` 。让 `Persons` 实现 `Sorter` 接口并进行测试。
|
|
|
|
|
|