Avatar ·

Rust में: self और Self (बड़े और छोटे अक्षर) में क्या अंतर है?

सभी को नमस्ते! मैंने Rust सीखना शुरू किया है और एक अजीब चीज़ देखी: कोड में अक्सर `self` और `Self` दिखते हैं, लेकिन इनका उपयोग अलग-अलग तरीके से होता है। मैं भ्रमित हो गया हूँ। यहाँ Rust की किताब से एक उदाहरण है जिसे मैं समझने की कोशिश कर रहा हूँ: ```rust struct Point { x: f64, y: f64, } impl Point { fn new(x: f64, y: f64) -> Self { Self { x, y } } fn distance(&self, other: &Self) -> f64 { let dx = self.x - other.x; let dy = self.y - other.y; (dx * dx + dy * dy).sqrt() } } ``` मैं देख रहा हूँ कि `fn new` में `Self` लौटाया जा रहा है, और `fn distance` में पैरामीटर `other` का प्रकार `&Self` है। साथ ही, मेथड के अंदर मैं `self.x` के ज़रिए फ़ील्ड्स को एक्सेस कर रहा हूँ। लेकिन क्या `self` और `Self` एक ही चीज़ नहीं हैं? इन्हें अलग-अलग क्यों लिखा जाता है? मेरा सवाल है: इनमें मूलभूत अंतर क्या है?