जंग वास्तव में आप एक ब्लॉक में अन्य चर शैडो, तो let x: i32 = 565;
एक नई चर x
कि x
let (x,y) = (1,3);
साथ पहले परिभाषित छाया को परिभाषित करने में बताती है। ध्यान दें कि आप x
को फिर से परिभाषित कर सकते हैं ताकि दूसरे x
एक नया प्रकार हो सकें!
fn main(){
let x = 1;
println!("Now X is {}",x);
let x = "hi";
println!("Now X is {}",x);
}
यह reddit thread के बारे में यह क्यों उपयोगी है और अधिक विस्तार में चला जाता है। दो चीजें हैं जो उल्लेख कर रहे हैं कि दिलचस्प लग रहे हैं:
संचालन जो चर का स्वामित्व लेने के लिए, लेकिन एक ही प्रकार के अन्य चर वापसी के लिए, यह कभी कभी लौटे चर को फिर से परिभाषित करने के लिए "अच्छा लग रहा है" एक ही नाम। here से:
let iter = vec.into_iter();
let iter = modify(iter);
let iter = double(iter);
या एक चर अपरिवर्तनीय बनाने के लिए:
let mut x;
// Code where `x` is mutable
let x = x;
// Code where `x` is immutable
क्यों इस भाषा में अनुमति दी है? क्या इस कारण तर्क कार्यक्रम त्रुटियों को बड़े कार्यक्रम में समझना आसान नहीं है? छायांकन का उद्देश्य क्या है और क्या कोई अन्य भाषा है जो इन अवधारणाओं का उपयोग करती है? – Viraj
आप पहले से छायांकित चर का संदर्भ कैसे दे सकते हैं? – Dai
@ दाई मुझे नहीं लगता कि आप कर सकते हैं ... आप हमेशा किसी अन्य चर के लिए स्वामित्व पास कर सकते हैं 'let y = x'। – Alec