Mutex
hakkında hızlı bir stilistik veya deyimsel sorularım var.Bir Muteksin Değiştirilmesi <Option<>>
fn upper()
'daki verileri *string = match *string
'u kullanmaktan daha zarif bir yolu var mı? Her iki taraftaki dezavantajı garip görünüyor, fakat eğer yapmazsam, <MutexGuard>
dizgisinin nasıl ele alınacağını bilmiyorum.
Bağlantı playground için
use std::sync::{Mutex};
#[derive(Debug)]
struct SharedFile{
file: Mutex<Option<String>>
}
impl SharedFile{
fn new()-> SharedFile{
SharedFile{
file: Mutex::new(Some("test".to_owned())),
//file: Mutex::new(None),
}
}
fn upper(&self){
let mut string = self.file.lock().unwrap();
*string= match *string{
Some(ref mut x) => Some(x.to_uppercase()),
None => Some("Empty".to_owned()),
};
println!("{:?}", *string);
}
}
fn main() {
let shared = SharedFile::new();
shared.upper();
println!("{:?}", shared);
}