2016-05-10 16 views
7
let hello1 = "Hello, world!"; 
let hello2 = "Hello, world!".to_string(); 
let hello3 = String::from("Hello, world!"); 

उत्तर

10
let hello1 = "Hello, world!"; 

यह एक स्ट्रिंग टुकड़ा (&str) पैदा करता है। विशेष रूप से, &'static str, एक स्ट्रिंग स्लाइस जो प्रोग्राम की पूरी अवधि के लिए रहता है। कोई ढेर स्मृति आवंटित नहीं है; स्ट्रिंग के लिए डेटा प्रोग्राम की बाइनरी के भीतर ही रहता है।

let hello2 = "Hello, world!".to_string(); 

इस प्रारूप को किसी भी प्रकार है कि Display लागू करता है, एक स्वामित्व, आवंटित स्ट्रिंग (String) बनाने स्वरूपण मशीनरी का उपयोग करता है। 1.9.0 से पहले जंग के संस्करणों में (विशेष रूप से this commit की वजह से), यह String::from का उपयोग करके सीधे परिवर्तित करने से धीमा है। संस्करण 1.9.0 में और बाद में, एक स्ट्रिंग अक्षर पर .to_string() पर कॉल करना String::from जैसा ही गति है।

let hello3 = String::from("Hello, world!"); 

यह एक कुशल तरीके से एक के स्वामित्व, आवंटित स्ट्रिंग (String) के लिए एक स्ट्रिंग टुकड़ा बदल देता है।

let hello4 = "hello, world!".to_owned(); 

String::from जैसा ही है।

यह भी देखें:

संबंधित मुद्दे