题目序号:(2200)
题目来源:阿里巴巴
频次:1
答案1:(Kjj)
Go与C
1、区别
语言代码表面差异
如源文件差异
C语言扩展名 | 源类型 |
---|---|
.c | C语言源文件 |
.h | 头文件 |
Go语言扩展名 | 源文件 |
.go | Go语言源文件 |
其他详细的语言代码表面差异可以参考文章:CSDN详细 (opens new window),也可以查看在hyperpolyglot上有详细的对比表格:hyperpolyglot表格 (opens new window)
核心差异
Go异于c的核心特点:
- 并发编程
- 面向接口编程
- 函数多返回值
- 延后执行
- 异常处理
- 强大且高性能的网络编程
- 内存管理及回收
- 代码跨平台及交叉编译
2、优劣
Go语言优势:
兼顾C语言级别的编译、运行效率,容易部署,PHP级别的开发效率
强大的标准库,内置高效的垃圾回收机制
简单的并发编程,goroutine和channel极易上手
静态类型语言,拥有强大的编译检查、严格的编码规范
背景强大,由三位骨灰级大师创造,google公司运营维护
Go语言劣势:
- 没有异常处理,只有Error
- 依赖管理(已解决) 1.11推出GoModules
- 缺少框架(已解决)Gin、Beego、Echo…等等
- 无泛型(已解决)Go1.18中加入
C语言优势:
- 代码量小。
- 运行速度快。
- 功能强大。
C语言劣势:
- 危险性高。
- 开发周期长。
- 可移植性不强。