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` एक ही चीज़ नहीं हैं? इन्हें अलग-अलग क्यों लिखा जाता है?
मेरा सवाल है: इनमें मूलभूत अंतर क्या है?