मैंने इस कोड को जंगली में देखा :
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
था।