Browse Source

统一练习格式

leisore 10 năm trước cách đây
mục cha
commit
7504657140
4 tập tin đã thay đổi với 11 bổ sung11 xóa
  1. 2 2
      eBook/11.1.md
  2. 2 2
      eBook/11.4.md
  3. 4 4
      eBook/11.7.md
  4. 3 3
      eBook/11.9.md

+ 2 - 2
eBook/11.1.md

@@ -236,13 +236,13 @@ type Reader interface {
 
 有的时候,也会以一种稍微不同的方式来使用接口这个词:从某个类型的角度来看,它的接口指的是:它的所有导出方法,只不过没有显式地为这些导出方法额外定一个接口而已。
 
-练习 11.1:simple_interface.go
+**练习 11.1** simple_interface.go:
 
 定义一个接口 `Simpler`,它有一个 `Get()` 方法和一个 `Set()`,`Get()`返回一个整型值,`Set()` 有一个整型参数。创建一个结构体类型 `Simple` 实现这个接口。
 
 接着定一个函数,它有一个 `Simpler` 类型的参数,调用参数的 `Get()` 和 `Set()` 方法。在 `main` 函数里调用这个函数,看看它是否可以正确运行。
 
-练习 11.2:interfaces_poly2.go
+**练习 11.2**interfaces_poly2.go:
 
 a) 扩展 interfaces_poly.go 中的例子,添加一个 `Circle` 类型
 

+ 2 - 2
eBook/11.4.md

@@ -67,9 +67,9 @@ func classifier(items ...interface{}) {
 
 在 示例12.17(xml.go) 中解析 XML 文档是,我们就会用到 `type-switch` 。
 
-练习 11.4:simple_interface2.go
+**练习 11.4** simple_interface2.go:
 
-接着 练习 11.1 中的内容,创建第二个类型 `RSimple`,它也实现了接口 `Simpler`,写一个函数 `fi`,它可以区分 `Simple` 和 `RSimple` 类型的变量。
+接着 练习11.1 中的内容,创建第二个类型 `RSimple`,它也实现了接口 `Simpler`,写一个函数 `fi`,它可以区分 `Simple` 和 `RSimple` 类型的变量。
 
 ## 链接
 

+ 4 - 4
eBook/11.7.md

@@ -195,17 +195,17 @@ type Interface interface {
 
 这个接口总结了需要用于排序的抽象方法,函数 `Sort(data Interface)` 用来对此类对象进行排序,可以用它们来实现对其他数据(非基本类型)进行排序。在上面的例子中,我们也是这么做的,不仅可以对 `int` 和 `string` 序列进行排序,也可以对用户自定义类型 `dayArray` 进行排序。
 
-练习 11.5:interfaces_ext.go
+**练习 11.5** interfaces_ext.go:
 
 a). 继续扩展程序,定义类型 `Triangle`,让它实现 `AreaInterface` 接口。通过计算一个特定三角形的面积来进行测试(三角形面积=0.5 * (底 * 高))
 
 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中同样的事情。
 
-练习 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` 数组进行排序。
 
@@ -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` 接口并进行测试。
 

+ 3 - 3
eBook/11.9.md

@@ -105,9 +105,9 @@ func main() {
 
     any hello is a special String!
 
-练习 11.9 simple_interface3.go:
+**练习 11.9** simple_interface3.go:
 
-继续练习11.2,在它中添加一个 `gI` 函数,它不再接受 `Simpler` 类型的参数,而是接受一个空接口参数。然后通过类型断言判断参数是否是 `Simpler` 类型。最后在 `main` 使用 `gI` 取代 `fI` 函数并调用它。确保你的代码足够安全。
+继续 练习11.2,在它中添加一个 `gI` 函数,它不再接受 `Simpler` 类型的参数,而是接受一个空接口参数。然后通过类型断言判断参数是否是 `Simpler` 类型。最后在 `main` 使用 `gI` 取代 `fI` 函数并调用它。确保你的代码足够安全。
 
 ## 11.9.2 构建通用类型或包含不同类型变量的数组
 
@@ -141,7 +141,7 @@ func (p *Vector) Set(i int, e Element) {
 
 `Vector` 中存储的所有元素都是 `Element` 类型,要得到它们的原始类型(unboxing:拆箱)需要用到类型断言。TODO:The compiler rejects assertions guaranteed to fail,类型断言总是在运行时才执行,因此它会产生运行时错误。
 
-练习 11.10 min_interface.go / minmain.go:
+**练习 11.10** min_interface.go / minmain.go:
 
 仿照11.7中开发的 `Sorter` 接口,创建一个 `Miner` 接口并实现一些必要的操作。函数 `Min` 接受一个 `Miner` 类型变量的集合,然后计算并返回集合中最小的元素。