go的不记名interface可以说是一种神来之笔

go的interface 并不强制要求 实现者表明自己的身份。也就是说,如果你的一个方法,你只想支持某个对象,具有Close() error 方法,你就可以自己定一个从来没有过的interface。只要任何实现者,契合你的这个定义,拥有这个Close()方法,那你就可以让他们用你。

这种不记名的interface约束,更像是一个契约。不仅可以向前兼容,也可以向以后兼容。

最开始我不理解为什么要这么设计,但是后来发现,用起来真的好用。

当我们的interface多了之后,在其他语言中痛苦的需要各种impelement x,修修改改,在这个go里面,好像就不那么痛苦了。

你更多的时候,都不用怎么改。

别人的库,拿来你就用,也不用管你这个interface,别人定义过没有,别人有没有引用或者依赖你。

完全不冲突。非常好用。

分类: 默认 标签: 发布于: 2022-07-28 14:21:39, 点击数: