感觉go语言不是很好用 go语言好不好( 七 )


说到底, 这个是因为对泛型支持的不完备导致的.
Go语言是没啥NB的特性, 但是Go的特性和工具组合在一起就是好用.
这就是Go语言NB的地方.
1.11 没有泛型支持 , 常见数据类型接口丑陋
没有泛型的话,List、Set、Tree这些常见的基础性数据类型的接口就只能很丑陋:放进去的对象是一个具体的类型,取出来之后成了无类型的interface{}(可以视为所有类型的基础类型),还得强制类型转换之后才能继续使用,令人无语 。Go语言缺少min、max这类函数,求数值绝对值的函数abs只接收/返回双精度小数类型,排序接口只能借助sort.Interface无奈的回避了被比较对象的类型 , 等等等等,都是没有泛型导致的结果 。没有泛型 , 接口很难优雅起来 。Go开发者没有明确拒绝泛型,只是说还没有找到很好的方法实现泛型(能不能学学已经开源的语言呀) 。现实是,Go 1.0已经定型,泛型还没有 , 那些丑陋的接口为了保持向后兼容必须长期存在着 。
Go有自己的哲学, 如果能有和目前哲学不冲突的泛型实现, 他们是不会反对的.
如果只是简单学学(或者叫抄袭)已经开源的语言的语法, 那是C++的设计风格(或者说C++从来都是这样设计的, 有什么特性就抄什么), 导致了各种脑裂的编程风格.
编译时泛型和运行时泛型可能是无法完全兼容的, 看这个例子:
type AdderT interface {
Add(a, b T) T
}
有人学过GO语言么?和C++比、优缺点在那?C++适合本地程序的开发 。Go语言适合网络程序和本地程序的开发 。Go的优点:垃圾回收,语意明确,格式统一 。Go的缺点:效率目前没有C++高,但对于桌面程序而言,效率问题不大 , 因为硬件已经很快了 。c++过于复杂了,加入很多炫技的内容 。这些内容脱离了事情的本质 。
最明显的就是所谓的面向对象 。基于面向对象的工程如果足够大的情况下,会带来很大的耦合度,如果再加上内存管理,多线程等等 。项目后期基本上没办法维护和增加功能 。
关于c++的语言复杂性,你可以问知乎上的任何一位高手 。没一个敢说自己精通c++ 。你也可以去看一下所有的c++编绎器,没有任何一个敢说自己完全实现了c++的标准 。不同的编绎器之间实现细节又不同 。所以功能再强大没有实用性,就失去了意义,只会制造更多的问题 。
关于感觉go语言不是很好用和go语言好不好的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

推荐阅读