Rust'ta birden çok "kullanım" ifadesi bildirmek kötü bir stil olarak kabul edilir mi? Yakın zamanda Rust'u denemeye başlayan bir C++ programcısıyım. Rust kodunu incelediğimde fark ettiğim bir şey, pek çok Rust programında, programın üst kısmında bir grup use
ifadesi olacak. C++ gelen, özellikle başlık dosyaları yaparken, using namespace std
kullanmak için cesaret edildi, ama gördüğüm Pas programlarının çoğunda böyle görünmüyor. Yani aşağıdaki önemsiz örneklerden hangisinin daha iyi Pas programlama tarzı olduğu düşünülüyor? Bir modül ile ikili bir program yapıyorsanız değişir mi? Ve neden? C#Pas "kullan" vs C++ "ad alanını kullanarak"
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>());
});
}
}
Ya da bu ...
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>());
});
}
}
Not: C++ 'nin de tek isminde 'using', ör. std :: cout kullanarak '' C++ 'da gayet güzel çalışıyor. Yani hayır, 'using' bir glob import ifadesi değildir. Diğer taraftan, isim-alanı kullanarak, ve kendi etkisi açısından oldukça açıklayıcıdır. – rubenvb
Ah, üzgünüm, haklısın. C++ ile fazla çalışmıyorum, bu yüzden yanıltıcı olabilirim. –