浅谈Rust语言特性
如大家所了解的,Rust是一种由Mozilla开发的系统编程语言,专注于内存安全、并发性和高性能,旨在替代C/C++等传统系统编程语言。
Rust 有着非常优秀的特性,例如:
可重用模块
内存安全和保证(安全的操作与不安全的操作)
不可恢复和可恢复的错误处理特性
并发性支持
复杂的数据类型(称为集合)
如果与我们比较熟悉的 C++ 相比的话,Rust 可以比较的地方太多了,这里我仅仅举一个比较简单的部分(模块引入)来看,在 C++ 中我们可能会需要以下头文件:
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <string>
#include <algorithm>
#include <bitset>
而如果要在 Rust 中完成的话,我们只需要:
use std::io::prelude::*;
use std::{fs, io, env, process};
Rust 提供大量默认的标准库。上面的代码中,就第一行,就 use 了一堆模块,这一点和 Python 的 import xxx
比较相似,此外:
C++ 还是那个老问题:惯用法。析构函数、拷贝构造函数。写对了没有。单线程下是对的,也许多线程就错了。要知道你可能从前写好了基础库,没有完整测试它在高并发下的表现,继续用可能就出错了(数据错误、内存访问错误)。Rust 呢?Rust 有一套基础设施(borrow checker), 从语义上检查了跨线程共享。
对 Rust 来说,编译器保证指出你的错误,对 C++ 来说,编译器没有这种保证,它也无法保证。