मैं एक त्रुटि में भाग का उपयोग कर:"उधार मूल्य काफी देर तक नहीं रहते" जब as_slice()
extern crate serialize;
use serialize::base64::{mod, ToBase64, FromBase64};
fn main() {
let a: [u8, ..30] = [123, 34, .....];
let b = a.from_base64().as_slice();
println!("{}", b);
}
त्रुटि:
error: borrowed value does not live long enough
let b = a.from_base64().as_slice();
मेरे लिए, कोड कोई गलत कर सकते हैं, हालांकि। मुझे यह त्रुटि क्यों है?
ध्यान दें कि 'चलो एक: [u8, ..30] = [123, 34, ...];' के रूप में आप लंबाई अनुकूल करने के लिए जब भी आप सरणी बदलने है महती हो सकता है। यदि आप लंबाई को दस्तावेज करना चाहते हैं, तो यह ठीक है, अगर आपको इसकी आवश्यकता नहीं है और दर्द महसूस होता है, तो इसे व्यक्त करने का एक और तरीका है: 'एक = [123u8, 34, ...]; '। कुंजी यह है कि '123' और' 34' केवल सामान्य एकीकृत (कोई विशिष्ट प्रकार नहीं) हैं, इसलिए आप उन्हें 'u8' निर्दिष्ट करके बाध्य कर रहे हैं; हालांकि, क्योंकि सरणी समरूप कंटेनर हैं, एक और समाधान एक के प्रकार को रोकना है (पहला, आम तौर पर, इसलिए '123u8') और संकलक कटौती करता है कि सभी 'u8' हैं! –