Rust में Vec<T> से स्लाइस (slice) प्राप्त करने का तरीका: पूर्ण गाइड
सभी को नमस्ते! मैंने Rust सीखना शुरू किया है और वेक्टर के साथ काम करते समय एक समस्या का सामना किया। मेरे पास `Vec` है, और मैं इसके तत्वों का एक उपसमूह प्राप्त करना चाहता हूँ — यानी एक स्लाइस (slice)। उदाहरण के लिए, मैं डेटा प्रोसेसिंग के लिए एक प्रोग्राम लिख रहा हूँ जहाँ संख्याओं का एक वेक्टर है, और मुझे केवल पहले तीन तत्वों या 2 से 5 की रेंज के साथ काम करना है।
मैंने अलग-अलग तरीके आज़माए, लेकिन कंपाइलर त्रुटियाँ देता है। यहाँ मेरा कोड है:
```rust
fn main() {
let numbers = vec![10, 20, 30, 40, 50, 60];
// इंडेक्स 1..3 (20, 30, 40) के साथ स्लाइस प्राप्त करना चाहता हूँ
let slice = numbers[1..4]; // त्रुटि!
println!("{:?}", slice);
}
```
कंपाइलर `Index` और `Range` ट्रेट्स के बारे में कुछ कहता है — मैं पूरी तरह से नहीं समझता कि इसका क्या मतलब है। साथ ही, मैंने सुना है कि `&[T]` और `Vec` के बीच अंतर है, लेकिन उन्हें सही तरीके से कैसे बदलें? और क्या स्लाइस में तत्वों को बदलना संभव है यदि मूल वेक्टर mutable है?
कृपया विशिष्ट उदाहरणों के साथ समझाएँ:
1. immutable स्लाइस सही तरीके से कैसे प्राप्त करें?
2. mutable स्लाइस कैसे प्राप्त करें?