What & Why
Python:有GC(垃圾回收机制),内存安全,学习曲线平缓。
C++/C:无GC,无法确保内存安全,学习曲线一般,但是要学的很多,称为高手确保代码内存安全不容易。
Rust是一门无 GC 且无需手动内存管理、性能高、工程性强、语言级安全性以及能同时得到工程派和学院派认可的语言。可以确保对于任何技术水平的程序员都能做到内存安全且高性能。
这就是为什么要开发rust,为了在不损失高性能的情况下,实现一种机制保证内存安全。也正是因为这个目标导致Rust的学习曲线很陡峭。
Rust工具链
- Cargo 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。
- Rustfmt 格式化工具确保开发者遵循一致的代码风格。
- Rust Language Server 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。
- rustup:Rust版本管理软件
hello world
最简单hello world:
fn main()
{
println!("Hello World!");
}
在Rust中标准输出是用一个宏来实现的。
编译方法:rustc ./main.rs
使用cargo管理器实现hello world:
创建项目:
cargo new hello_world
cd hello_world
cargo不仅会配置项目的依赖信息,还会配置版本控制系统,默认自动进行git init,生成gitignore文件,也可以使用–vcs来切换到其他版本控制系统
- Cargo.toml是 cargo 特有的项目数据描述文件。它存储了项目的所有元配置信息,如果 Rust 开发者希望 Rust 项目能够按照期望的方式进行构建、测试和运行,那么,必须按照合理的方式构建 Cargo.toml。
- Cargo.lock 文件是 cargo 工具根据同一项目的 toml 文件生成的项目依赖详细清单,因此我们一般不用修改它,只需要对着 Cargo.toml 文件撸就行了。
src文件夹存放代码
编译项目:
cargo build
cargo run
target存放编译后的文件
只检测报错,不进行编译:
cargo check