C++程序员是如何评价GO语言的(6)

当然,我不是假装内存管理在C ++中很容易。 当它很困难时,这可能非常困难。 所以我明白垃圾收集的选择。 我只是期望系统级语言提供更多。

不喜欢GO语言的地方

除了上面提到的较小的语法烦恼以及缺乏简单的通用资源(而不仅仅是内存)管理之外,还有其它一些缺陷。

No generics(没有泛型)

Go专注于类型安全,特别是对于数字类型,使得缺乏泛型令人惊讶。我可以记得在泛型之前使用Java的感觉是多么令人沮丧,而这感觉差不多是尴尬的。没有泛型,我很快发现自己不得不选择缺乏类型安全或反复重新实现每种类型的代码,感觉就像这个语言作斗争。

我知道泛型是难以实现的,必须做出选择,觉得GO语言能到达什么程度(可能超过Java,但不如C ++),我知道Go将远远超过一个更好的C.但我认为泛型是不可避免的一次,像Go,你追求静态型安全。

不知何故,切片和maps容器是通用的,可能是因为它们是内置类型。

Lack of standard containers(缺少标准容器)

Go在其标准库中没有队列或堆栈。在C ++中,我定期使用std :: queue和std :: stack。我认为这些将需要仿制药。人们可以使用go的切片(动态分配的数组)实现相同的功能,并且可以将其包装在自己的类型中,但是类型只能包含特定类型,因此将为每种类型重新实现。或者您的容器可以容纳{}类型的接口(显然有点像Java对象或C ++ void *),放弃(静态)类型安全。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/798747d98c4f04f7c0dc7463441c19a6.html