Rust में फिक्स्ड साइज़ ऐरे (array) के रूप में स्लाइस (slice) कैसे प्राप्त करें?
नमस्ते! मैंने Rust सीखना शुरू किया है और एक समस्या का सामना किया जो सरल लगती है, लेकिन मुझे कोई सुंदर समाधान नहीं मिल रहा।
मेरे पास एक वेक्टर या किसी अन्य array से एक slice है, जैसे `&[u8]`। मुझे इसे एक फिक्स्ड साइज़ array में बदलना है, जैसे `[u8; 4]`। अन्य भाषाओं में मैं बस टाइप कास्ट कर देता या पहले N एलिमेंट ले लेता, लेकिन Rust में टाइप्स के साथ सब कुछ सख्त है।
यहाँ एक उदाहरण है जो काम नहीं करता:
```rust
fn main() {
let data: Vec = vec![1, 2, 3, 4, 5];
let slice: &[u8] = &data[0..4];
// मैं [u8; 4] array प्राप्त करना चाहता हूँ
let array: [u8; 4] = slice; // त्रुटि: expected array `[u8; 4]`, found `&[u8]`
}
```
मुझे पता है कि मैं मैन्युअल रूप से प्रत्येक एलिमेंट कॉपी कर सकता हूँ, लेकिन यह बदसूरत लगता है:
```rust
let mut array: [u8; 4] = [0; 4];
for (i, &val) in slice.iter().enumerate() {
array[i] = val;
}
```
क्या Rust में इसे करने का कोई साफ तरीका है? मैंने `try_into()` के बारे में सुना है, लेकिन यह एक Result लौटाता है और मुझे यकीन नहीं है कि इसका सही उपयोग कैसे करें। क्या कोई बेहतर तरीका है?