c 与go的区别优劣

参考解析

题目来源:阿里巴巴

答案1:

Go与C

1、区别

语言代码表面差异

  1. 如源文件差异
C语言扩展名 源类型
.c C语言源文件
.h 头文件
Go语言扩展名 源文件
.go Go语言源文件
  1. 其他详细的语言代码表面差异可以参考文章:[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)

核心差异

  1. Go异于c的核心特点:
  • 并发编程
  • 面向接口编程
  • 函数多返回值
  • 延后执行
  • 异常处理
  • 强大且高性能的网络编程
  • 内存管理及回收
  • 代码跨平台及交叉编译

2、优劣

Go语言优势:

  • 兼顾C语言级别的编译、运行效率,容易部署,PHP级别的开发效率

  • 强大的标准库,内置高效的垃圾回收机制

  • 简单的并发编程,goroutine和channel极易上手

  • 静态类型语言,拥有强大的编译检查、严格的编码规范

  • 背景强大,由三位骨灰级大师创造,google公司运营维护

Go语言劣势:

  • 没有异常处理,只有Error
  • 依赖管理(已解决) 1.11推出GoModules
  • 缺少框架(已解决)Gin、Beego、Echo…等等
  • 无泛型(已解决)Go1.18中加入

C语言优势:

  • 代码量小。
  • 运行速度快。
  • 功能强大。

C语言劣势:

  • 危险性高。
  • 开发周期长。
  • 可移植性不强。