संशोधित करना मेरे पास Mutex
के बारे में एक त्वरित स्टाइलिस्ट या बेवकूफ सवाल है।एक म्यूटेक्स <Option<>>
*string = match *string
का उपयोग करने से fn upper()
में डेटा को संशोधित करने का एक और शानदार तरीका है। यह दोनों तरफ निराशाजनक लगता है, लेकिन अगर मैं नहीं करता, तो मुझे नहीं पता कि स्ट्रिंग के <MutexGuard>
भाग को कैसे संभालना है।
लिंक playground को
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);
}