小编grj*_*ash的帖子

如何将 Rust 模块放置在单独的文件中?

下面的代码改编自“书”(rustup docs --book),并按此形式按预期工作 - 作为单个 .rs 文件。我只是希望该模块驻留在一个单独的文件中。我读过“这本书”的第 7 章“使用包、板条箱和模块管理不断增长的项目”。我只是不明白“它”。我的想法是“主要”代码属于 main.rs,模块可能需要位于 lib.rs,但确切的形式和位置仍然是个谜。本章经常指出运行“cargo new/build another”,但没有说明从哪个目录运行。同样,它指出 src/main.rs 或 src/lib.rs 对于特定示例应该看起来像这样,但不清楚(没有完整路径)一个“src”目录实际上是否位于同一个目录中位置如另一个。

所以,我想有不止一种方法可以做到这一点,但我会很高兴得到一个相对简单的答案。在这种情况下,我只关心该模块是否可以从下面看到的 main() 函数访问。

mod guess_mod {
    
    pub struct Guess {
        value: i32,
    }

    impl Guess {
        pub fn new(value: i32) -> Guess {
            if value < 1 || value > 100 {
                panic!("Guess value must be between 1 and 100, got {}.", value);
            }
            Guess{value}
        } 
        pub fn value(&self) -> i32 {
            self.value
        }
    }
}


use guess_mod::Guess;


fn print_guess_value(guess: Guess) {
        println!("The …
Run Code Online (Sandbox Code Playgroud)

module package rust

5
推荐指数
1
解决办法
3238
查看次数

仅由不安全代码块组成的 Rust 函数是否有任何用途?

该代码是从The Rust Programming Language 的清单 19-10 中复制的。它旨在说明可变静态变量的使用,但这不是我在这里关心的问题。尽管这可能被称为“玩具示例”,但在一本介绍 Rust 的书中,它提出了我认为是严重的问题。

的所有代码add_to_count都在一个unsafe块中。与制作函数本身相比,这有什么好处unsafe?照原样,函数的签名没有给出任何线索——本质上如果不是 Rust 的说法——是不安全的。我想知道为什么编译器甚至允许这样做。“好处”是,如下所示,可以在unsafe块外调用该函数。为什么 Rust 的介绍性文本会展示如何规避安全的编程实践?

static mut COUNTER: u32 = 0;

fn add_to_count(inc: u32) {
    unsafe {
        COUNTER += inc;
    }
}

fn main() {
    add_to_count(3);

    unsafe {
        println!("COUNTER: {}", COUNTER);
    }
}
Run Code Online (Sandbox Code Playgroud)

rust

4
推荐指数
1
解决办法
73
查看次数

如何在 perl 5.24 中关闭“什么时候是实验性的……”?

下面的代码是直接从 perldoc.perl.org 上的当前 perlsyn 页面复制的。[我根据需要添加了初始化和声明以使其运行(并且按预期工作),但重点是“when”关键字]

Perl 5.24 抱怨“何时”是实验性的。很公平,但我不想每次使用关键字时都看到这个。

没有警告 qw(experimental::when) 不起作用 - “未知警告类别......”

我也试过“开关”作为类别

有没有另一种方法来抑制这个警告(除了一般禁用警告)?

use v5.14;
for ($var) {
    $abc = 1 when /^abc/;
    $def = 1 when /^def/;
    $xyz = 1 when /^xyz/;
    default { $nothing = 1 }
}
Run Code Online (Sandbox Code Playgroud)

perl

2
推荐指数
2
解决办法
1711
查看次数

标签 统计

rust ×2

module ×1

package ×1

perl ×1