![]() |
1
8
Go是
not (quite) an object oriented language
:它没有类,它
does not have type inheritance
; 但它支持类似的构造
嵌入,嵌入
两者都打开
Interfaces Go中只有固定的方法集。A型 含蓄地 如果接口的方法集是接口的超集(并没有意图声明),则实现接口。 如果你想,空方法很好 文件 或 显式陈述 您的类型确实实现了一个接口(因为它没有明确声明)。公务的 Go FAQ: How can I guarantee my type satisfies an interface?
如果您希望在类型层次结构中有所区别(例如,您不希望对象同时是
将空方法添加到具有相同名称的接口将为您提供这种区别,假设您不会将此类方法添加到其他类型。 减少空方法的数量就我个人而言,我对空洞的方法没有任何问题。但有一种方法可以减少它们。
如果还创建
对象
不可移动的
笔记
建筑物
笔记
如果“子类型”的数量增加,或者如果接口类型有不止一个“标记”方法(因为所有方法都是“继承的”),那么这种技术的优势就会大大增加。 |
![]() |
grandmasternik · 缺少文件或方法 2 年前 |
![]() |
nvh · 无限期运行Go例程(完成后重新启动) 2 年前 |
![]() |
Gabe Tucker · 无法在golang中分配接口对象指针 2 年前 |
![]() |
kepemo2494 · 如何使用docker运行golang? 2 年前 |
![]() |
muthermutton · 为什么我的切片在追加时没有更新?[重复] 2 年前 |
![]() |
nos · 将Golang二进制文件读入切片数据,结果为零 2 年前 |
![]() |
Tono Nam · 指向同一内存位置的两个不同类型的对象 2 年前 |