【发布时间】:2015-05-14 20:04:15
【问题描述】:
在 Rust 中声明多个“使用”语句是否被认为是不好的风格?我是一名最近开始尝试 Rust 的 C++ 程序员。我在查看 Rust 代码时注意到的一件事是,在许多 Rust 程序中,程序顶部会有一堆 use 语句。来自 C++,不鼓励使用 using namespace std,尤其是在制作头文件时,但在我见过的大多数 Rust 程序中似乎并非如此。那么以下哪些琐碎的例子被认为是更好的 Rust 编程风格?如果您正在制作二进制程序与模块,它会改变吗?为什么?
use std::sync::Arc;
use std::sync::Mutex;
use std::thread::Thread;
use std::rand::random;
fn main() {
let mut vec: Vec<char> = (0u8..10).map(|i| i as char).collect();
let mut data = Arc::new(Mutex::new(vec));
for i in 1usize..10 {
let data = data.clone();
let thread = Thread::spawn(move || {
let mut data = match data.lock() {
Ok(guard) => guard,
Err(e) => panic!("{}, was poisoned", e)
};
data.push(random::<char>());
});
}
}
或者这个……
fn main() {
let mut vec: Vec<char> = (0u8..10).map(|i| i as char).collect();
let mut data = std::sync::Arc::new(
std::sync::Mutex::new(vec)
);
for i in 1usize..10 {
let data = data.clone();
let thread = std::thread::Thread::spawn(move || {
let mut data = match data.lock() {
Ok(guard) => guard,
Err(e) => panic!("{}, was poisoned", e)
};
data.push(std::rand::random::<char>());
});
}
}
【问题讨论】:
标签: namespaces rust std using