Go语言中的Interface

发布时间:2019-08-06 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Go语言中的Interface脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

先给大家拜个早年:狗年旺旺旺

最近在看Go语言的面向对象的知识点时,发现它的面向对象能力全靠 interface 撑着,而且它的 interface 还与我们以前知道的 interface 完全不同。故而整个过程不断的思考为什么要如此设计?这样设计给我们带来了什么影响?

interface 我不懂你

Rob Pike 曾说:

如果只能选择一个Go语言的特 性移植到其他语言中,他会选择接口

被Go语言设计者如此看重,想来 interface 一定是资质不凡,颜值爆表。但是说实话,当我第一次读这部分内容的时候,我产生了以下三个问题:

  1. 原来implement 方式产生了什么问题,我用的不好好的吗?
  2. 如果不通过 implement 把接口与实现类强制关联起来,它怎么知道我实现的哪个接口?
  3. 这么干为实际编码带来了什么影响或者说好处?

带着这些问题我进行了一些比较与分析,Rob Pike 如此说,不可能是想骗我们都去用 Go,毕竟大家都是上过小学的,骗不了你们

侵入式与非侵入式

在诸多的资料中,大家都提到 侵入式非侵入式 这样的概念,我用代码来解释下这两个概念。

PHP 中的侵入式: