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,6 +1,6 @@
# 11.6 使用方法集与接口
在 10.6.3 及例子 methodset1.go 中我们看到,作用于变量上的方法实际上是不区分变量到底是指针还是值的。当碰到接口类型值时,这会变得有点复杂,原因是接口变量中存储的具体值是不可寻址的,幸运的是,如果使用不当编译器会给出错误。考虑下面的程序:
10.6.3 及例子 methodset1.go 中我们看到,作用于变量上的方法实际上是不区分变量到底是指针还是值的。当碰到接口类型值时,这会变得有点复杂,原因是接口变量中存储的具体值是不可寻址的,幸运的是,如果使用不当编译器会给出错误。考虑下面的程序:
示例 11.5 methodset2.go:
@@ -77,10 +77,9 @@ func main() {
将一个值赋值给一个接口赋值时,编译器会确保所有可能的接口方法都可以在此值上被调用,因此不正确的赋值在编译期就会失败。
**译注**
Go语言规范定义了接口方法集的调用规则
Go 语言规范定义了接口方法集的调用规则:
- 类型 *T 的可调用方法集包含接受者为 *T 或 T 的所有方法集
- 类型 T 的可调用方法集包含接受者为 T 的所有方法
@@ -90,4 +89,4 @@ Go语言规范定义了接口方法集的调用规则
- [目录](directory.md)
- 上一节:[测试一个值是否实现了某个接口](11.5.md)
- 下一节:[第一个例子使用Sorter接口排序](11.7.md)
- 下一节:[第一个例子:使用 Sorter 接口排序](11.7.md)