मैंने इस कोड को जंगली में देखा :
fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;
let fields = fields;रेखा क्या करती है? ऐसा क्यों है?
मैंने इस कोड को जंगली में देखा :
fields.sort_by_key(|&(_, ref field)| field.tags().into_iter().min().unwrap());
let fields = fields;
let fields = fields;रेखा क्या करती है? ऐसा क्यों है?
जवाबों:
यह fieldsफिर से अपरिवर्तनीय बनाता है ।
fieldsपहले उत्परिवर्तनीय ( let mut fields = …;) के रूप में परिभाषित किया गया था , जिसका उपयोग sort_by_keyइन-प्लेस के साथ किया जाता है और लक्ष्य को परिवर्तनशील होने की आवश्यकता होती है। लेखक ने स्पष्ट रूप से आगे उत्परिवर्तन को रोकने के लिए यहां चुना है।
"डाउनग्रेड" अपरिवर्तनीय के लिए एक उत्परिवर्ती बंधन रस्ट में काफी आम है।
ऐसा करने का एक और सामान्य तरीका ब्लॉक एक्सप्रेशन का उपयोग करना है:
let fields = {
let mut fields = …;
fields.sort_by_key(…);
fields
};
बयान अपरिवर्तनीय let var = var;बनाता है varऔर इसके वर्तमान मूल्य के लिए बाध्य है। पहले fieldsजैसा घोषित किया गया mutथा।