Pio*_*_11 7 project-structure rust
我做欧拉项目问题(数学编码挑战)已经有一段时间了。
过去我一直用 Python 编写它们(在同一个项目中很容易有几十个脚本)。然而,我现在在学习 Rust 时正在重做一些挑战。我发现处理这些项目非常尴尬,因为我不能简单地在同一目录中编写一堆 Rust 程序,但为每个程序创建一个全新的 Rust 项目似乎也很过分。
谁能推荐一个好的中介吗?理想情况下,我正在寻找类似于前面提到的带有一堆单独脚本的 Python 项目的东西。
kmd*_*eko 10
我会推荐这个项目结构来应对编码挑战:
/src/bin/problem-101.rs
/src/bin/problem-143.rs
/src/lib.rs
/Cargo.toml
Run Code Online (Sandbox Code Playgroud)
本质上只需创建一个类似的项目cargo new --lib challenges,bin/在 中创建一个文件夹src/,为其中的每个问题创建单独的源文件,然后就可以开始了!
//! /src/bin/problem-101.rs
fn main() {
println!("solution #101")
}
Run Code Online (Sandbox Code Playgroud)
//! /src/bin/problem-143.rs
fn main() {
println!("solution #143")
}
Run Code Online (Sandbox Code Playgroud)
//! /src/lib.rs
pub fn add(left: usize, right: usize) -> usize {
left + right
}
Run Code Online (Sandbox Code Playgroud)
//! /src/bin/problem-101.rs
fn main() {
println!("solution #101")
}
Run Code Online (Sandbox Code Playgroud)
这种结构很容易使用和扩展小“脚本”,因为/src/bin文件夹中的 Rust 源文件会自动检测为二进制文件,不需要在Cargo.toml. 您可以直接运行它们:
//! /src/bin/problem-143.rs
fn main() {
println!("solution #143")
}
Run Code Online (Sandbox Code Playgroud)
使用库作为项目的根可以让您轻松地在问题之间共享函数和逻辑。只需从库中导入,如下所示:
use challenges::add;
Run Code Online (Sandbox Code Playgroud)
从这里开始的唯一一步是使用工作空间,它可以为每个问题提供细粒度的依赖关系,但这需要单独的文件夹、单独的Cargo.toml目录、单独的src/目录,因此您可能不希望这样来应对简单的编码挑战。
| 归档时间: |
|
| 查看次数: |
645 次 |
| 最近记录: |