c 与go的区别优劣
参考解析
题目来源:阿里巴巴
答案1:
Go与C
1、区别
语言代码表面差异
如源文件差异
C语言扩展名 | 源类型 |
---|---|
.c | C语言源文件 |
.h | 头文件 |
Go语言扩展名 | 源文件 |
.go | Go语言源文件 |
其他详细的语言代码表面差异可以参考文章:[CSDN详细](https://blog.csdn.net/weixin_44617968/article/details/117635407?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522165176324416781667885376%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=165176324416781667885376&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-1-117635407.142^v9^control,157^v4^control&utm_term=go%E5%92%8Cc%E7%9A%84%E5%8C%BA%E5%88%AB&spm=1018.2226.3001.4187),也可以查看在hyperpolyglot上有详细的对比表格:[hyperpolyglot表格](http://hyperpolyglot.org/c)
核心差异
Go异于c的核心特点:
- 并发编程
- 面向接口编程
- 函数多返回值
- 延后执行
- 异常处理
- 强大且高性能的网络编程
- 内存管理及回收
- 代码跨平台及交叉编译
2、优劣
Go语言优势:
兼顾C语言级别的编译、运行效率,容易部署,PHP级别的开发效率
强大的标准库,内置高效的垃圾回收机制
简单的并发编程,goroutine和channel极易上手
静态类型语言,拥有强大的编译检查、严格的编码规范
背景强大,由三位骨灰级大师创造,google公司运营维护
Go语言劣势:
- 没有异常处理,只有Error
- 依赖管理(已解决) 1.11推出GoModules
- 缺少框架(已解决)Gin、Beego、Echo…等等
- 无泛型(已解决)Go1.18中加入
C语言优势:
- 代码量小。
- 运行速度快。
- 功能强大。
C语言劣势:
- 危险性高。
- 开发周期长。
- 可移植性不强。