mirror of
https://github.com/unknwon/the-way-to-go_ZH_CN.git
synced 2025-08-11 22:06:51 +08:00
Update 11.1.md (#792)
之前的那段翻译似乎有点绕,不利于直观理解。另外这两者是指receiver和method table ptr。
This commit is contained in:
@@ -28,7 +28,7 @@ Go 语言中的接口都很简短,通常它们会包含 0 个、最多 3 个
|
|||||||
|
|
||||||
此处的方法指针表是通过运行时反射能力构建的。
|
此处的方法指针表是通过运行时反射能力构建的。
|
||||||
|
|
||||||
类型(比如结构体)实现接口方法集中的方法,每一个方法的实现说明了此方法是如何作用于该类型的:**即实现接口**,同时方法集也构成了该类型的接口。实现了 `Namer` 接口类型的变量可以赋值给 `ai` (接收者值),此时方法表中的指针会指向被实现的接口方法。当然如果另一个类型(也实现了该接口)的变量被赋值给 `ai`,这二者(译者注:指针和方法实现)也会随之改变。
|
类型(比如结构体)可以实现某个接口的方法集;这个实现可以描述为,该类型的变量上的每一个具体方法所组成的集合,包含了该接口的方法集。实现了 `Namer` 接口的类型的变量可以赋值给 `ai`(即 `receiver` 的值),方法表指针(method table ptr)就指向了当前的方法实现。当另一个实现了 `Namer` 接口的类型的变量被赋给 `ai`,`receiver` 的值和方法表指针也会相应改变。
|
||||||
|
|
||||||
**类型不需要显式声明它实现了某个接口:接口被隐式地实现。多个类型可以实现同一个接口**。
|
**类型不需要显式声明它实现了某个接口:接口被隐式地实现。多个类型可以实现同一个接口**。
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user