下面的代码改编自“书”(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) 该代码是从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) 下面的代码是直接从 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)