本系列文章仅作为学习记录,内容包括引用内容,以及个人观点等,如有意见请留言指正
—————————————————我是华丽的分割线———————————————————————
目录
go语言概述
发展目标
语言特性
用途
特性缺失
小节
1. 结合静态语言的安全和高效性, 以及动态语言的易开发性,吸取二者的优点便于开发
Go 语言是一门类型安全和内存安全的编程语言。虽然 Go 语言中仍有指针的存在,但并不允许进行指针运算。
2. 另一个目标是对于网络通信、并发和并行编程的极佳支持,从而更好地利用大量的分布式和多核的计算机。
3. 依赖管理摒弃了c/c 系列的头文件,防止随着项目的增大导致依赖关系的混乱。采用了类似 java/python 的包模型机制,这个模型通过严格的依赖关系检查机制来加快程序构建的速度,提供了非常好的可量测性。
4. 构建速度(编译和链接到机器代码的速度)非常快,一般情况构建一个程序只需要数百毫秒到几秒。整个 Go 语言标准库的编译时间一般都在20秒内,其他的常规项目也只需要半秒钟的时间来完成编译工作。相对于c/c 那样的静态语言那漫长的编译和链接工作,同样作为静态语言的 Go 语言,通过自身优良的构建机制,使得程序的构建过程变得微不足道,拥有了像脚本语言和动态语言那样的高效开发的能力。另外,在运行速度方面 Go 语言也可以与 C/C 相提并论。
5. 内存问题(通常是内存泄漏): Go 语言像其它静态语言一样执行本地代码,但它依旧运行在某种意义上的虚拟机,以此来实现高效快速的垃圾回收。Go 语言自己的 GC 机制随时间在优化,就我所知已经经历了几次大的优化。
6. Go 语言还能够在运行时进行反射相关的操作。
7. 安装第三方包非常简单 go install package。
8. Go 语言还支持调用由 C 语言编写的海量库文件,从而实现对过去开发的软件进行快速迁移。
1. Go 语言没有类和继承的概念。它通过接口(interface)的概念来实现多态性。Go 和传统的面向对象语言不同,抛弃了臃肿的面向对象编程技术(个人觉得指的就是继承)。
2. 函数作为 Go 语言中的基本构件, 更加灵活的使用它。
3. Go 语言使用静态类型,所以它是类型安全的,加上通过构建到本地代码,程序的执行速度也非常快。
4. 强类型语言,不允许任何隐式的类型转换。原则:让所有东西都是显式的。
5. 支持交叉编译,比如可以在 linux 系统上面开发运行 windows 下的应用程序。这是第一门完全支持 UTF-8 的编程语言,这不仅体现在它可以处理使用 UTF-8 编码的字符串,就连它的源码文件格式都是使用的 UTF-8 编码。
1. Go 语言被设计成一门应用于搭载 Web 服务器,存储集群或类似用途的巨型中央服务器的系统编程语言。对于高性能分布式系统领域而言,Go 语言无疑比大多数其它语言有着更高的开发效率。它提供了海量并行的支持,这对于游戏服务端的开发而言是再好不过了。
2. Go 语言一个非常好的目标就是实现所谓的复杂事件处理(CEP),这项技术要求海量并行支持,高度的抽象化和高性能。
3. 因为垃圾回收和自动内存分配的原因,Go 语言不适合用来开发对实时性要求很高的软件。
许多能够在大多数面向对象语言中使用的特性 Go 语言都没有支持,但其中的一部分可能会在未来被支持。
recover
和 panic
来替代异常机制Go 语言优势:
参与评论
手机查看
返回顶部