मैं पूर्णांक से स्ट्रिंग में कैसे परिवर्तित करूं?


87

मैं कोड संकलित करने में असमर्थ हूं जो एक प्रकार से पूर्णांक को एक स्ट्रिंग में परिवर्तित करता है। मैं रूबी से रूबीस्ट ट्यूटोरियल के लिए एक उदाहरण चला रहा हूं जिसमें विभिन्न प्रकार के रूपांतरण हैं जैसे:

"Fizz".to_str()और num.to_str()(जहां numएक पूर्णांक है)।

मुझे लगता है कि इन to_str()फ़ंक्शन कॉलों के बहुमत (यदि सभी नहीं) को हटा दिया गया है। पूर्णांक को स्ट्रिंग में बदलने का वर्तमान तरीका क्या है?

मुझे मिलने वाली त्रुटियां हैं:

error: type `&'static str` does not implement any method in scope named `to_str`
error: type `int` does not implement any method in scope named `to_str`

क्षमा करें, अगर मैं अनुसरण नहीं करता हूं, लेकिन मैंने इंट सोर्स को देखने की कोशिश की है और यह doc.rust-lang.org/0.11.0/std/num/strconv/index.html का उपयोग करने लगता है, लेकिन यह सिर्फ एक बाइट वेक्टर लौटाता है । इसके अलावा वहाँ to_string()विधि है, लेकिन वह रिटर्न Stringऔर शाब्दिक स्ट्रिंग नहीं है।
user3358302

haha nevermind, मैंने सोचा to_str()था कि एक अलग वापसी मूल्य था, मैं उपयोग to_string()
करूंगा

1
@ user3358302, कोई भी विधि आपके द्वारा "शाब्दिक स्ट्रिंग" कहे जाने वाली चीज़ को वापस नहीं कर सकती है जब तक कि वे वैधानिक रूप से ज्ञात शाब्दिक वापस नहीं करते हैं क्योंकि इन मानों में टाइप है &'static str, अर्थात, एक स्थिर जीवनकाल के साथ एक स्ट्रिंग स्लाइस, जो गतिशील रूप से बनाए गए डेटा का उपयोग करके प्राप्त करना असंभव है। आप केवल स्ट्रिंग शाब्दिक का उपयोग करके उन्हें बना सकते हैं।
व्लादिमीर मतावेव

जानकार अच्छा लगा! मुझे लगता है कि विधि to_strने मुझे भ्रमित कर दिया (जैसा कि आपने कहा, उन्होंने स्पष्टता के लिए नाम बदला) यह सोचकर कि यह एक Stringवस्तु के बजाय एक स्ट्रिंग टुकड़ा वापस कर रहा है ।
user3358302

जवाबों:


122

उपयोग करें to_string()( उदाहरण यहाँ चल रहा है ):

let x: u32 = 10;
let s: String = x.to_string();
println!("{}", s);

आप सही हे; रुस्ट 1.0 को स्थिरता के लिए जारी किए to_str()जाने to_string()से पहले नाम बदल दिया गया था क्योंकि एक आवंटित स्ट्रिंग अब कहा जाता है String

यदि आपको कहीं स्ट्रिंग स्लाइस पास करने की आवश्यकता है, तो आपको एक &strसंदर्भ प्राप्त करना होगा String। इसका उपयोग करके किया जा सकता है &और एक गंभीर ज़बरदस्ती:

let ss: &str = &s;   // specifying type is necessary for deref coercion to fire
let ss = &s[..];     // alternatively, use slicing syntax

आपके द्वारा लिंक किया गया ट्यूटोरियल अप्रचलित प्रतीत होता है। यदि आप Rust में स्ट्रिंग्स में रुचि रखते हैं, तो आप द रूस्ट प्रोग्रामिंग लैंग्वेज के स्ट्रिंग्स चैप्टर के माध्यम से देख सकते हैं ।


1
बहुत बहुत धन्यवाद, यह चीजों को साफ करता है :) इसके अलावा मैं उस ट्यूटोरियल से गुजरूंगा क्योंकि स्ट्रिंग रूपांतरण कुछ ऐसा लगता है जो अभी भी जंग पर बदल रहा है।
user3358302
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.