Golang语言特性
引言
学习一门语言,首先得简单了解一下新语言的特点,或者哪些特性,甚至可以和其他语言进行对比,比如Java
特性
在这里,将Golang和Java进行简单的特点对比,方便观察。其表格如下:
| 特性项 | Golang | Java |
|---|---|---|
| 动、静特性 | 静态语言,支持运行时动态类型 | 静态语言 |
| 强、弱特性 | 强类型 | 强类型 |
| 隐式类型推导 | 支持 | 不支持 |
| 类型安全 | 是 | 是 |
| 面向对象支持 | 类型组合支持支持面向对象 | 类/接口 |
| 接口 | Duck模型 | 显示声明 |
| 多态 | 通过接口支持 | 接口及继承关系支持 |
| 泛型 | 目前不支持,后期版本支持 | 支持 |
| 反射 | 支持 | 支持 |
| 编译模型 | 编译成可执行程序 | 编译成中间字节码 |
| 运行模式 | 直接运行 | 虚拟机运行 |
| 内存管理 | 支持自动垃圾回收 | 支持自动垃圾回收 |
| 并发支持 | 协程 | Java线程 |
| 跨平台 | 支持 | 原生跨平台 |
总结
编程语言的学习也可以归纳为两个过程:
- 尽量利用已经掌握的编程语言,将新语言和已掌握语言的语法进行对比,梳理出相同点和不同点,建立知识间的连接,从而快速掌握新语言的语法知识。
- 语言特性上对比新旧语言,新语言一般只是语法新,大多数语言的特性都大同小异,语言特性具有通用性。
参考: