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