我的观点:
Go的隐式接口Duck Typing确实不是新技术, 但是在主流静态编程语言中支持Duck Typing应该是很少的(不清楚目前是否只有Go语言支持).
静态类型和动态类型虽然没有绝对的好和不好, 但是每个都是有自己的优势的, 没有哪一个可以包办一切. 而Go是试图结合静态类型和动态类型(interface)各自的优势.
那么就从头谈起:什么是接口 。其实通俗的讲,接口就是一个协议,规定了一组成员,例如.NET里的ICollection接口:
public interface ICollection {
int Count { get; }
object SyncRoot { get; }
bool IsSynchronized { get; }
void CopyTo(Array array, int index);
}
这就是一个协议的全部了吗go语言为什么不看好?事实并非如此,其实接口还规定了每个行为的“特征” 。打个比方,这个接口的Count除了需要返回集合内元素的数目以外,还隐含了它需要在O(1)时间内返回这个要求 。这样一个使用了ICollection接口的方法才能放心地使用Count属性来获取集合大小,才能在知道这些特征的情况下选用正确的算法来编写程序,而不用担心带来性能问题,这才能实现所谓的“面向接口编程” 。当然这种“特征”并不但指“性能”上的,例如Count还包含了例如“不修改集合内容”这种看似十分自然的隐藏要求 , 这都是ICollection协议的一部分 。
go语言为什么不看好的介绍就聊到这里吧 , 感谢你花时间阅读本站内容,更多关于go语言排名为什么不高、go语言为什么不看好的信息别忘了在本站进行查找喔 。
推荐阅读
- 车模网站视频直播软件,车模 下载
- 微信小程序注册申请流程,微信小程序注册申请流程
- 美国高防服务器代理,美国高防ip
- 学js要学js数据结构和算法吗,学js要学js数据结构和算法吗
- 星形线函数Python 星形线函数表达式
- wps安卓竖屏播放视频,wps安卓
- 三星s8下载游戏桌面没有,三星下载程序主屏幕没有
- mysql怎么看主键 mysql怎么看主键外键
- 如何从微博引流到微信,如何从微博引流到微信号