जंग - स्लाइस

एक टुकड़ा स्मृति के एक ब्लॉक के लिए एक संकेतक है। स्लाइस का उपयोग सन्निहित स्मृति ब्लॉकों में संग्रहीत डेटा के कुछ हिस्सों तक पहुंचने के लिए किया जा सकता है। इसका उपयोग सरणियों, वैक्टर और तारों जैसी डेटा संरचनाओं के साथ किया जा सकता है। स्लाइस डेटा के कुछ हिस्सों को एक्सेस करने के लिए इंडेक्स नंबरों का उपयोग करते हैं। एक स्लाइस का आकार रनटाइम पर निर्धारित किया जाता है।

स्लाइस वास्तविक डेटा के संकेत हैं। उन्हें कार्यों के संदर्भ में पारित किया जाता है, जिसे उधार के रूप में भी जाना जाता है।

उदाहरण के लिए, स्लाइस का उपयोग स्ट्रिंग मान के एक हिस्से को लाने के लिए किया जा सकता है। एक कटा हुआ स्ट्रिंग वास्तविक स्ट्रिंग ऑब्जेक्ट का एक संकेतक है। इसलिए, हमें एक स्ट्रिंग के शुरुआती और समाप्ति सूचकांक को निर्दिष्ट करने की आवश्यकता है। इंडेक्स 0 की तरह ही शुरू होता है।

वाक्य - विन्यास

let sliced_value = &data_structure[start_index..end_index]

न्यूनतम सूचकांक मूल्य 0 है और अधिकतम सूचकांक मूल्य डेटा संरचना का आकार है। ध्यान दें कि end_index अंतिम स्ट्रिंग में शामिल नहीं किया जाएगा।

नीचे दिए गए आरेख में एक नमूना स्ट्रिंग ट्यूटोरियल दिखाया गया है , जिसमें 9 वर्ण हैं। पहले वर्ण का सूचकांक 0 है और अंतिम वर्ण का 8 है।

निम्न कोड स्ट्रिंग से 5 वर्णों को प्राप्त करता है (सूचकांक 4 से शुरू)।

fn main() {
   let n1 = "Tutorials".to_string();
   println!("length of string is {}",n1.len());
   let c1 = &n1[4..9]; 
   
   // fetches characters at 4,5,6,7, and 8 indexes
   println!("{}",c1);
}

उत्पादन

length of string is 9
rials

चित्रण - एक पूर्णांक सरणी को जोड़ना

मुख्य () फ़ंक्शन 5 तत्वों के साथ एक सरणी घोषित करता है। यह आह्वान करता हैuse_slice()फ़ंक्शन और इसे तीन तत्वों का एक टुकड़ा (डेटा सरणी को इंगित करता है) पास करता है। स्लाइस को संदर्भ द्वारा पारित किया जाता है। Use_slice () फ़ंक्शन स्लाइस और उसकी लंबाई के मूल्य को प्रिंट करता है।

fn main(){
   let data = [10,20,30,40,50];
   use_slice(&data[1..4]);
   //this is effectively borrowing elements for a while
}
fn use_slice(slice:&[i32]) { 
   // is taking a slice or borrowing a part of an array of i32s
   println!("length of slice is {:?}",slice.len());
   println!("{:?}",slice);
}

उत्पादन

length of slice is 3
[20, 30, 40]

म्यूटेबल स्लाइस

&mut कीवर्ड का उपयोग म्यूट के रूप में एक स्लाइस को चिह्नित करने के लिए किया जा सकता है।

fn main(){
   let mut data = [10,20,30,40,50];
   use_slice(&mut data[1..4]);
   // passes references of 
   20, 30 and 40
   println!("{:?}",data);
}
fn use_slice(slice:&mut [i32]) {
   println!("length of slice is {:?}",slice.len());
   println!("{:?}",slice);
   slice[0] = 1010; // replaces 20 with 1010
}

उत्पादन

length of slice is 3
[20, 30, 40]
[10, 1010, 30, 40, 50]

उपर्युक्त कोड एक उत्परिवर्ती स्लाइस को use_slice () फ़ंक्शन से गुजरता है । फ़ंक्शन मूल सरणी के दूसरे तत्व को संशोधित करता है।