go和c++的区别

Python022

go和c++的区别,第1张

Go(又称 Golang)是 Google 的 Robert Griesemer,Rob Pike 及 Ken Thompson 开发的一种静态强类型、编译型语言。Go 语言语法与 C 相近,但功能上有:内存安全,GC(垃圾回收),结构形态及 CSP-style 并发计算。

Go的语法接近C语言,但对于变量的声明有所不同。Go支持垃圾回收功能。Go的并行模型是以东尼·霍尔的通信顺序进程(CSP)为基础,采取类似模型的其他语言包括Occam和Limbo,但它也具有Pi运算的特征,比如通道传输。在1.8版本中开放插件(Plugin)的支持,这意味着现在能从Go中动态加载部分函数。

与C++相比,Go并不包括如枚举、异常处理、继承、泛型、断言、虚函数等功能,但增加了 切片(Slice) 型、并发、管道、垃圾回收、接口(Interface)等特性的语言级支持。Go 2.0版本将支持泛型,对于断言的存在,则持负面态度,同时也为自己不提供类型继承来辩护。

在Go中有几项规定,当不匹配以下规定时编译将会产生错误。

每行程序结束后不需要撰写分号()。

大括号({)不能够换行放置。

if判断式和for循环不需要以小括号包覆起来。

参考:百度百科

没有语言是垃圾,语言是工具,关键在于使用者。

1:go与c语言相比,go有垃圾回收,不会造成内存泄露问题,go的语法简洁优美,同样的c++100行代码go大概50行可以做到,go的目标是能做C++能做的事,虽然目前可能不太实际

2:go的并行机制并不是一般的线程,通过channel和goroutine来实现,比线程还要轻量级很多,所以go适合高并发的服务器端

3:go是系统级别的语言,相当于c语言,java c#都是算比较高级的语言,这个不太好比,效率的话目前确实是要高一些,而且不需要外部依赖,所以go还是很强大的

C++适合本地程序的开发.Go语言适合网络程序和本地程序的开发.相对于C++Go的优点:垃圾回收语意明确格式统一缺点:效率目前没有C++高,但对于桌面程序而言,效率问题不大,因为硬件已经很快了.C++是目前的主流语言,相信会和C一样成为经典.成为经典的意思就是:学它的人能拿一份不错的工资,但也仅仅是不错而己.将来的网络的世界,Go发热的机会很大,认为其前途看好.Go的开发者包括Unix的创始人和C语言的创始人等,都是一代黑客之首,相信会做得很好.