资源说明:GO是一个以通用系统语言为设计目标的系统级语言, 如 C++. 以下是针对C++程序员的一些学习拉摘要. 这文章主要讨论GO和C++的不同。
对于更一般的介绍,请另参网站其它文章:
概念不同
* GO没有带构建器和析构器的类. 取而代之的是继承阶级和虚函数, GO提供接口,下文会详细说明. C++用模板实现
* Go使用内存回收机制.没有必要也不可能明确地回收内存. 现代处理器中内存回收是为了更高效地编程
* GO有指针但没有指针运算. 你不能用指针变量来遍历一个字符的各个位
* GO中数组是优先值. 当数组作为参数使用,函数获得数组的一个拷贝, 而不是指针. 然而在实际应用中一般用片作为参数;片有指向数组的指针;片在下面会详细讨论。
* 字符串由语言提供,一旦建立就不能再改变.
* GO提供哈希表,称之类映射(map)
* 分离的线程执行, 通过通道通讯,也是语言本身集成的.后面会详细讨论.
* 特定类型 (映射和通道后面会详细说明) 以引用方式传递, 而非值传递. 传递一个映射给函数不会获得函数的一个拷贝, 所以如果函数改变了其值,调用者能看得到. 在C++中可以理解成引用.
*GO没有头文件.取而代之地把所有文件当成包的一部分. 当包定义了一个以大写开头的对象 (类型、常量、变量、函数),这个对象在所有引用该包的文件中可见
* Go 不支持隐含类型转换. 不同类型数据进行运算时需要转换
* Go 不支持函数重载和用户自定义操作符.
* Go does 常量或可变限定词
* Go 使用nil而不是C++中的NULL或0作为逻辑非。
本源码包内暂不包含可直接显示的源代码文件,请下载源码包。