第十一章修改 (#839)

Co-authored-by: Joe Chen <jc@unknwon.io>
This commit is contained in:
Haigang Zhou
2022-05-12 21:55:24 +08:00
committed by GitHub
parent d3979794f4
commit e394361869
14 changed files with 86 additions and 89 deletions

View File

@@ -1,6 +1,6 @@
# 11.6 使用方法集与接口
在第 10.6.3 节及例子 methodset1.go 中我们看到,作用于变量上的方法实际上是不区分变量到底是指针还是值的。当碰到接口类型值时,这会变得有点复杂,原因是接口变量中存储的具体值是不可寻址的,幸运的是,如果使用不当编译器会给出错误。考虑下面的程序:
[第 10.6.3 节](10.6.md)及例子 [methodset1.go](examples\chapter_10\methodset1.go) 中我们看到,作用于变量上的方法实际上是不区分变量到底是指针还是值的。当碰到接口类型值时,这会变得有点复杂,原因是接口变量中存储的具体值是不可寻址的,幸运的是,如果使用不当编译器会给出错误。考虑下面的程序:
示例 11.5 [methodset2.go](examples/chapter_11/methodset2.go)
@@ -81,9 +81,9 @@ func main() {
Go 语言规范定义了接口方法集的调用规则:
- 类型 *T 的可调用方法集包含接受者为 *T 或 T 的所有方法集
- 类型 T 的可调用方法集包含接受者为 T 的所有方法
- 类型 T 的可调用方法集包含接受者为 *T 的方法
- 类型 `*T` 的可调用方法集包含接受者为 `*T``T` 的所有方法集
- 类型 `T` 的可调用方法集包含接受者为 `T` 的所有方法
- 类型 `T` 的可调用方法集**不**包含接受者为 `*T` 的方法
## 链接