特性
- 语法简单: Go语言在自由度和灵活度上做了取舍,以此换来了更好的维护性和平滑的学习曲线,但是没法用Go整什么花活。
- 交叉编译: 在以往交叉编译往往需要一堆工具链,对于Go而言仅需要在编译时设置几个参数,即可在目标操作系统上运行。
- 天然并发: Go语言对于并发的支持是纯天然的,仅需一个关键字,就可以开启一个异步协程。
- 垃圾回收: Go语言有着垃圾回收的功能,但并不需要虚拟机。
- 静态链接: 编译后的二进制文件不需要依赖运行环境,并且编译速度相当的快。
- 丰富的标准库: 从字符串处理到源码AST解析,功能强大且丰富的标准库是Go语言坚实的基础。
Go抛弃了继承,弱化了OOP,类,元编程,泛型,Lamda表达式等这些特性,拥有不错的性能和较低的上手难度,非常适合用于云服务开发,应用服务端开发,甚至可以进行部分Linux嵌入式开发,不过由于带有垃圾回收,其性能肯定无法媲美C/C++这类系统级语言,但Go在其擅长的领域表现十分出色。虽然面世只有13年,但也已经有大量的行业采用了Go作为首选语言,尽管如此,Go语言仍有不少的缺点,比如令人诟病的错误处理,略显畸形的泛型,标准库虽然很丰富但内置的数据结构却没几个等等,不过总的来说这是一门非常年轻且具有活力的现代语言,值得学习。
语言特色
- 简洁、快速、安全;
- 并行、有趣、开源;
- 内存管理、v数组安全、编译迅速;
编程的特点
- 支持类型推到功能,例如x:=0会自动判断x是int类型;
- 编译时间快;
- 内置并发支持:轻量级进程(通过goroutine),channel,select语句;
- Go程序简单,简洁,安全;
- 支持接口和类型绑定;
- 生成没有外部依赖关系的静态链接的本机二进制可执行文件;
语言刻意避免的语法
为了保持语言简洁扼要,Go 语言删减了很多其它语言都有的功能
- 不支持类型继承;
- 不支持方法或操作符重载;
- 不支持包之间的循环依赖;
- 不支持指针运算;
- 不支持断言;
- 不支持泛型编程;
文章评论