Avatar ·

Rust में Option<T> का ओवरहेड नल पॉइंटर्स की तुलना में कितना बड़ा है?

सभी को नमस्ते! मैंने अभी Rust सीखना शुरू किया है, C++ से आया हूँ। वहाँ मैं nullptr या NULL का उपयोग करता था ताकि मान की अनुपस्थिति को दर्शा सकूँ। Rust में इसके बजाय Option का उपयोग होता है, और मुझे यह चिंता सता रही है: यह कितना महँगा है? C++ में नल पॉइंटर सिर्फ 0 होता है, और कोई अतिरिक्त लागत नहीं होती। उदाहरण के लिए, मेरे पास यह संरचना है: ```rust struct Node { value: i32, left: Option>, right: Option>, } ``` अगर मैं `left: None` करता हूँ, तो Rust को कहीं एक फ्लैग स्टोर करना होगा जो बताए कि यह None है। तो क्या हर Option कच्चे पॉइंटर से ज्यादा मेमोरी लेता है? या कंपाइलर इसे किसी तरह ऑप्टिमाइज़ करता है? मैंने आकार जाँचने की कोशिश की: ```rust use std::mem::size_of; fn main() { println!("{}", size_of::