<>读后感-001

2019-05-27  本文已影响0人  losangele

语言特性 Go语言作为一门全新的静态类型开发语言,与当前的开发语言相比具备众多令人兴奋不已 的新特性。
Go语言最主要的特性:

比较有意思的是作者对自动垃圾回收精确的描述,但有些描述不一定完全准确:

自动垃圾回收可以先看下不支持垃圾回收的语言的资源管理方式,以下为一小段C语言代码:

void foo() {
 char* p = new char[128]; ... // 对p指向的内存块进行赋值 
func1(p); // 使用内存指针 
delete[] p; } 
int* p = new int; 
p += 10; // 对指针进行了偏移,因此那块内存不再被引用 
// …… 这里可能会发生针对这块int内存的垃圾收集 …… 
p -= 10; // 咦,居然又偏移到原来的位置 
*p = 10; // 如果有垃圾收集,这里就无法保证可以正常运行了

微软的C++/CLI算是用一种偏门的方式让C++程序员们有机会品尝一下垃圾回收功能的鲜美味道。

自我验证体会,有些观点不一定完全准确,比如C/C++高效的指针运算是别的语言所不具备的,但相应的自动垃圾回收变的几乎不可实现,但相应的提供了智能指针的解决方案。
智能指针在C++11版本之后提供,包含在头文件<memory>中,shared_ptr、unique_ptr、weak_ptr。

上一篇 下一篇

猜你喜欢

热点阅读