在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
对于golang的接口,纠结两天了,今天有种茅塞顿开的感觉,有必要写点东西了。 纠结接口,说白了就是搞不透接口,方法,结构体几者之间的关系以及具体的用途。可以简单的从三者的定义说起,接口说白了就是一个方法(method)集,结构体就是一个类,通常保存属性,方法相当于类的函数,不过有两种类型的接受者(对象),一种是值,一种是指针,指针能改变结构体中的属性值。在go中,只要结构体的方法实现(包含)了接口中所有的方法,就可以说这个结构体实现了这个接口。定义讲清楚后可以看看接口到底有什么用了,接下来给出两段代码。
输出结果为:xiaoming write 这个例子同样能说明go语言面向对象的多态性质。接口实际上是作为中间体调用结构体的方法。 第二个例子: 该接口有两个方法,Area和Perimeter,并且分别写了两个Get方法,用来分别计算面积和周长(这一步其实是没用的)
。随后,分别定义了长方形和圆形的结构体,并且分别实现了 Shape 接口.
在 func main() {} 中,分别用了 Get 方法和调用 interface 成员方法去计算周长和面积,可以看出,接口的作用就在于去作为"中间体"去调用结构体的成员方法
没有必要再去对接口内部的方法进行重新定义!!总之,使用接口可以非常灵活,而且与具体的实现做了解耦,如果以后有其他的实现类,只需要实现接口就可以了,而不用去改使用的时候的代码。
|
请发表评论