从C++到Go(一)

本文探讨了Go和C++之间的差异,包括Go的接口替代类、垃圾回收机制、安全的指针、不可变字符串、内置的哈希表(map)、无头文件的包系统、禁止隐式类型转换和函数重载等特性。Go使用接口和多个返回值来处理错误,而C++则采用不同的方式。
摘要由CSDN通过智能技术生成

从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有指针的概念,但
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值