From 9bb931257a88a58517ed5a0e3a559d4915fe8be8 Mon Sep 17 00:00:00 2001 From: songleo Date: Mon, 18 Jan 2016 16:34:44 +0800 Subject: [PATCH] review --- eBook/10.6.md | 4 ++-- eBook/10.7.md | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eBook/10.6.md b/eBook/10.6.md index 18f300e..4c7565b 100644 --- a/eBook/10.6.md +++ b/eBook/10.6.md @@ -139,7 +139,7 @@ func (t time.Time) first3Chars() string { } ``` -类型在在其他的,或是非本地的包里定义,在它上面定义方法都会得到和上面同样的错误。 +类型在其他的,或是非本地的包里定义,在它上面定义方法都会得到和上面同样的错误。 但是有一个间接的方式:可以先定义该类型(比如:int 或 float)的别名类型,然后再为别名类型定义方法。或者像下面这样将它作为匿名类型嵌入在一个新的结构体中。当然方法只在这个别名类型上有效。 @@ -198,7 +198,7 @@ First 3 chars: Mon 如果想要方法改变接收者的数据,就在接收者的指针类型上定义该方法。否则,就在普通的值类型上定义方法。 -下面的例子 `pointer_value.go` 作了说明:`change()`接受一个指向 B 的指针,并改变它内部的成员;`write()` 接受通过拷贝接受 B 的值并只输出B的内容。注意 Go 为我们做了探测工作,我们自己并没有指出是是否在指针上调用方法,Go 替我们做了这些事情。b1 是值而 b2 是指针,方法都支持运行了。 +下面的例子 `pointer_value.go` 作了说明:`change()`接受一个指向 B 的指针,并改变它内部的成员;`write()` 接受通过拷贝接受 B 的值并只输出B的内容。注意 Go 为我们做了探测工作,我们自己并没有指出是否在指针上调用方法,Go 替我们做了这些事情。b1 是值而 b2 是指针,方法都支持运行了。 示例 10.13 pointer_value.go: diff --git a/eBook/10.7.md b/eBook/10.7.md index 82bba86..19889e0 100644 --- a/eBook/10.7.md +++ b/eBook/10.7.md @@ -1,6 +1,6 @@ # 10.7 类型的 String() 方法和格式化描述符 -当定义一个了有很多方法的类型时,十之八九你会使用 `String()` 方法来定制类型的字符串形式的输出,换句话说:一种可阅读性和打印性的输出。如果类型定义了 `String()` 方法,它会被用在 `fmt.Printf()` 中生成默认的输出:等同于使用格式化描述符 `%v` 产生的输出。还有 `fmt.Print()` 和 `fmt.Println()` 也会自动使用 `String()` 方法。 +当定义了一个有很多方法的类型时,十之八九你会使用 `String()` 方法来定制类型的字符串形式的输出,换句话说:一种可阅读性和打印性的输出。如果类型定义了 `String()` 方法,它会被用在 `fmt.Printf()` 中生成默认的输出:等同于使用格式化描述符 `%v` 产生的输出。还有 `fmt.Print()` 和 `fmt.Println()` 也会自动使用 `String()` 方法。 我们使用第 10.4 节中程序的类型来进行测试: