我们知道Go中没有继承,接口的用法也与Java中的用法大相径庭,很多适合,我们需要使用OO的思想来组织我们达到项目,但是将Java的oo思想在Go中会比较痛苦,Go中的方法和面向对象的类似,但是定义上也是很多初学者不好理解的,比如方法的定义竟然在结构体外部,组装起来看起来也很随意,其实Go只是有面向对象特性,其实不算是面向对象语言。
方法
Go支持一些面向对象编程特性,方法是这些所支持的特性之一。 本篇文章将介绍在Go中和方法相关的各种概念
方法声明
在Go中,我们可以为类型T
和*T
显式地声明一个方法,其中类型T
必须满足四个条件:
T
必须是一个定义类型;T
必须和此方法声明定义在同一个代码包中;T
不能是一个指针类型;T
不能是一个接口类型。
类型T
和*T
称为它们各自的方法的属主类型(receiver type)。 类型T
被称作为类型T
和*T
声明的所有方法的属主基类型(receiver base type)
如果我们为某个类型声明了一个方法,以后我们可以说此类型拥有此