![]() |
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?
如果您希望在类型层次结构中有所区别(例如,您不希望对象同时是
将空方法添加到具有相同名称的接口将为您提供这种区别,假设您不会将此类方法添加到其他类型。 减少空方法的数量就我个人而言,我对空洞的方法没有任何问题。但有一种方法可以减少它们。
如果还创建
对象
不可移动的
笔记
建筑物
笔记
如果“子类型”的数量增加,或者如果接口类型有不止一个“标记”方法(因为所有方法都是“继承的”),那么这种技术的优势就会大大增加。 |
![]() |
ginad · 如何在go-app组件中执行javascript代码 3 月前 |
![]() |
Jason Fingar · 方法在另一个方法的上下文中不可访问 4 月前 |
![]() |
Jess The Witch · GCP云功能中处理延迟任务的模式 5 月前 |
![]() |
pmoubed · 这是使用计时器的goroutine泄漏吗? 5 月前 |