From 28299b8bf89bd559e60e43e90af202f018a4c312 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B9=BE=E5=9D=A4=E6=AD=A3=E6=B0=94?= Date: Tue, 2 Mar 2021 01:30:33 +0800 Subject: [PATCH] Update 11.1.md (#792) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 之前的那段翻译似乎有点绕,不利于直观理解。另外这两者是指receiver和method table ptr。 --- eBook/11.1.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eBook/11.1.md b/eBook/11.1.md index ba6f705..cf57d5a 100644 --- a/eBook/11.1.md +++ b/eBook/11.1.md @@ -28,7 +28,7 @@ Go 语言中的接口都很简短,通常它们会包含 0 个、最多 3 个 此处的方法指针表是通过运行时反射能力构建的。 -类型(比如结构体)实现接口方法集中的方法,每一个方法的实现说明了此方法是如何作用于该类型的:**即实现接口**,同时方法集也构成了该类型的接口。实现了 `Namer` 接口类型的变量可以赋值给 `ai` (接收者值),此时方法表中的指针会指向被实现的接口方法。当然如果另一个类型(也实现了该接口)的变量被赋值给 `ai`,这二者(译者注:指针和方法实现)也会随之改变。 +类型(比如结构体)可以实现某个接口的方法集;这个实现可以描述为,该类型的变量上的每一个具体方法所组成的集合,包含了该接口的方法集。实现了 `Namer` 接口的类型的变量可以赋值给 `ai`(即 `receiver` 的值),方法表指针(method table ptr)就指向了当前的方法实现。当另一个实现了 `Namer` 接口的类型的变量被赋给 `ai`,`receiver` 的值和方法表指针也会相应改变。 **类型不需要显式声明它实现了某个接口:接口被隐式地实现。多个类型可以实现同一个接口**。