我有以下 Rust 代码的问题:
pub fn median(v: &Vec<i32>) -> f32 {
let len = v.len();
match len % 2 {
0 => (v[len / 2 - 1] + v[len / 2]) as f32 / 2 as f32,
1 => v[(len - 1) / 2] as f32,
}
}
Run Code Online (Sandbox Code Playgroud)
由于“非详尽模式”错误,此代码无法编译。这是为什么?% 运算符返回什么?
考虑以下代码:
struct User {
user: String,
email: String,
}
Run Code Online (Sandbox Code Playgroud)
编译器不会抱怨它。email字段后的尾随逗号让我觉得很奇怪,所以我尝试了这个:
struct User {
user: String,
email: String // no comma
}
Run Code Online (Sandbox Code Playgroud)
编译器仍然没有抱怨。两者有区别还是完全等价?
我正在尝试了解并发性,为此我一直在编写一些程序。正如我所预料的,我注意到,添加线程时,挂机时间通常会减少。然而,我也注意到,随着运行的并行任务数量的增加,CPU 时间也会增加。
是否是因为当只有一个线程时,编译器在幕后优化代码以便使用多个内核(如果可能)?这是我想到的唯一解释。谁能帮我?
编辑:我使用的机器有多个核心(准确地说是4个)