最近学习Rust语言, 与Go语言做一个比较:
功能 | go | rust |
变量定义 | var | let |
函数定义 | fun | fn |
结构体 | 有 | 有 |
指针 | 有 | 无 |
集合 | Map和Set | vector、字符串和哈希 map |
切片 | 有 | 有 |
闭包 | 有 | 有 |
类 | 有 | 结构体方法 |
接口 | 有 | trait |
模式匹配 | 有 | 有 |
消息传递 | channel | channel |
线程 | go 协程 | spawn |
mutex锁 | 有 | 有 |
c交互 | 有 | 有 |
静态编译 | 有 | 有 |
错误处理 | try | 有 |
函数多返回值 | 有 | 无 |
GC | 有 | 无 |
反射 | 有 | 无 |
堆分配内存 | 自动处理 | 智能指针 |
泛型 | 无 | 有 |
所有权 | 无 | 有 |
生命周期 | 无 | 有 |
Rust语言: 加入现代语言功能, 更安全, 支持并发的C语言。
所以做网络服务选Go, 上手比较简单。做系统用Rust, 它就是未来的系统语言。