From C++ to Go: An Introduction (Part One)
发布时间
阅读量:
阅读量
从C++到Go (一)1
在着手学习之前,建议你以一种普遍的目标(而非从C++的角度)先对Go编程语言有一个初步的认识。The Go Tour是一个极为优质的资料(尽管在国内无法正常访问)。
Go与C++一样,同属一种通用型的系统编程语言。对于具备C++开发经验的程序员而言,在使用Go语言时需注意一些关键点。本文探讨了Go与C++之间的区别。
一个极其重要的方面是,这两种编程语言在思维方式上存在一些本质上的不同。C++的对象模型建立在类及类的继承机制之上,而Go的对象模型则依托于接口的设计理念。
概念差异分析
- Go语言中不存在具备构造函数与析构函数的类结构,为了实现类似类的方法、继承机制以及虚函数的功能,Go引入了 接口 的概念。此外,在C++中依赖模板实现的某些功能,Go则可以通过接口来完成。
- Go语言内置了垃圾回收机制,开发者既无法也不需要手动管理内存资源。同时,开发者无需关注内存是在栈上还是堆上分配,也无需分别处理
std::unique_ptr,std::shared_ptr,std::weak_ptr,std::auto_ptr或普通指针、野指针等复杂结构。Go的运行时系统会自动处理所有可能引发错误的内存操作。 - Go语言支持指针的
- Go语言内置了垃圾回收机制,开发者既无法也不需要手动管理内存资源。同时,开发者无需关注内存是在栈上还是堆上分配,也无需分别处理
全部评论 (0)
还没有任何评论哟~
