golang的interface有什么用?
3 回答
至尊宝的传说
TA贡献1789条经验 获得超10个赞
强类型语言为了保持动态语言的优势添加的。类似于java中的Object
,用处可大了。golang的面向对象设计就是基于interface{}的。如果你没用到,那你应该是过程式编程
慕容708150
TA贡献1831条经验 获得超4个赞
需要明确interface和interface{}的区别,一个是go的语法机制用于数据抽象和解耦,一个是这个机制的具体实现。前者应该鼓励使用,而后者应该谨慎使用。
大型项目或基础项目的构建往往少不了用interface来实现数据抽象和接口。当然也要看具体需求,go不是强范式的,go/channel/interface/reflect这些特性也没有说一定用,只要你觉得代码架构能完美匹配需求就行。当然,也不是说你没用到的东西就没用,建议多看看不同类型的开源项目体会一下。
关于interface{},无论何时都应该谨慎使用,这个东西存在滥用风险,可维护性差。但本着go的实用主义哲学,如果能完美匹配需求,用用未尝不可。
慕侠2389804
TA贡献1719条经验 获得超6个赞
不是说能完成各种业务,没用到的语言的特性就没用,反而该反思下,为什么自己没用到这个重要特性。
拿最简单常用的排序来说,没interface{},对于不同类型的参数你要写类似的代码n次,跟C++模板的思想类似。
- 3 回答
- 0 关注
- 1288 浏览
添加回答
举报
0/150
提交
取消