小编fre*_*esh的帖子

非穷举模式 - Rust 匹配表达式

我有以下 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)

由于“非详尽模式”错误,此代码无法编译。这是为什么?% 运算符返回什么?

pattern-matching rust

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

Rust 结构定义中的最后一个逗号是否必要?

考虑以下代码:

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)

编译器仍然没有抱怨。两者有区别还是完全等价?

rust

3
推荐指数
1
解决办法
497
查看次数

多线程会增加CPU时间吗?

我正在尝试了解并发性,为此我一直在编写一些程序。正如我所预料的,我注意到,添加线程时,挂机时间通常会减少。然而,我也注意到,随着运行的并行任务数量的增加,CPU 时间也会增加。

是否是因为当只有一个线程时,编译器在幕后优化代码以便使用多个内核(如果可能)?这是我想到的唯一解释。谁能帮我?

编辑:我使用的机器有多个核心(准确地说是4个)

concurrency multithreading

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