Rust编程入门
简介
Rust是一种由Mozilla开发的系统级编程语言,专注于速度、内存安全和并行处理。它通过所有权模型、借用检查器及生命周期概念,在编译时确保内存安全,有效避免了空指针异常、悬挂指针和数据竞争等问题。Rust支持高效的并发编程,并提供了高层次抽象而无运行时开销,保证程序性能。其自带的包管理和构建工具Cargo简化了依赖管理和构建流程。Rust适用于多种场景,包括操作系统、嵌入式系统、WebAssembly、游戏开发及高性能网络服务。凭借现代化的语法、强大的工具链支持(如rustfmt和clippy)以及跨平台兼容性,Rust在追求高效和安全的项目中展现出色。活跃的开源社区和丰富的学习资源进一步增强了它的吸引力,使其成为开发下一代可靠软件的理想选择。
创建Rust项目
- 安装Rust: 各种系统中Rust的安装,请参考 Rust官网说明 . 在ArchLinux环境下,安装命令为
| |
- 创建新项目
{% note primary %}
运行cargo new hello_world后,会建立一个文件夹hello_world, 其内部包含:Cargo.lock,Cargo.toml,src,target.
{% endnote %}
- 编辑
src/main.rs: 打开src/main.rs文件,并添加一些简单的Rust代码,比如打印斐波那契数列的前10项:
- 编译并运行项目:
| |
{% note primary %} 运行上述命令后,将输出斐波那契数列的前10项。 {% endnote %}
使用EVCXR进行交互式探索
为了能够更灵活地试验代码片段而不必每次都通过cargo run执行整个程序,我们可以使用evcxr,这是一个为Rust设计的Jupyter内核,也可以作为独立的REPL使用。
- 安装
EVCXR:
| |
- 启动
EVCXR
| |
- 在
EVCXR中试验代码:一旦进入了evcxr环境,您可以直接输入Rust表达式或小段代码进行试验,例如尝试上面定义的斐波那契函数:
{% note primary %}
请注意,在evcxr中,您可能需要先声明对外部依赖项(如果有的话)使用:dep命令。在这个特定的例子中,我们实际上不需要额外的依赖项,所以可以忽略:dep num_traits这一行。 通过这种方式,您可以在不离开终端的情况下快速测试Rust代码片段,这对于学习语言特性、调试问题或简单地验证想法都非常有用。此外,由于evcxr支持类似Jupyter notebook的交互方式,它也适合用于教学和演示目的。
{% endnote %}
Rust代码编译
确保处于正确的目录: 请确保您位于包含
Cargo.toml文件的项目根目录下。这个文件定义了项目的配置、依赖和其他相关信息。在上述例子中,就是位于目录hello_world下.编译项目:
| |
{% note primary %}
这将根据当前环境(调试或发布)编译项目。默认情况下,cargo build会在调试模式下进行编译,生成的二进制文件会位于target/debug/目录下。
{% endnote %}
- 编译优化版本(发布模式):
| |
{% note primary %}
这将在target/release/目录下生成经过优化的二进制文件。相比调试模式,发布模式下的编译会花费更多时间,但是生成的二进制文件通常更小且执行速度更快。
{% endnote %}
- 直接运行可执行文件:
- 对于调试模式编译的二进制文件,可以直接从
target/debug/目录下运行:
| |
- 对于发布模式编译的二进制文件,则从
target/release/目录下运行:
| |
{% note primary %}
这里的your_project_name是指您Cargo项目的名称,也就是Cargo.toml文件中的[package] name字段所指定的名字。
{% endnote %}