जब मैं सामान्य कार्यों में स्थिर चर का उपयोग करता हूं, जेनेरिक फ़ंक्शन के प्रत्येक उदाहरण में चर की इकाइयां समान होती हैं।क्या एक सामान्य फ़ंक्शन के विभिन्न उदाहरणों के लिए अलग-अलग स्थिर चर होने के लिए यह संभव है?
उदाहरण के लिए, इस कोड को
fn foo<T>() {
use std::sync::{Once, ONCE_INIT};
static INIT: Once = ONCE_INIT;
INIT.call_once(|| {
// run initialization here
println!("Called");
});
}
fn main() {
foo::<i64>();
foo::<i64>();
foo::<isize>();
}
println!
में सिर्फ एक बार कहा जाता है।
मैं जंग का मैदान का उपयोग कर विधानसभा कोड की जाँच की और देखा कि INIT
चर के प्रकार T
वास्तव में हालांकि foo<T>
खुद को भिन्न नाम के साथ instantiated कर रहे हैं स्वतंत्र है था।
क्या सामान्य फ़ंक्शन के विभिन्न उदाहरणों के लिए अलग-अलग स्थिर चर होने के लिए यह संभव है ताकि println!
को उपरोक्त उदाहरण में दो बार बुलाया जा सके?
हालांकि यह एक अच्छा सवाल नहीं हो सकता है, क्या आप जानते हैं कि जंग सामान्य पैरामीटर के साथ स्थैतिक चर का समर्थन क्यों नहीं करती है? – hfukuda
@hfukuda: वास्तव में नहीं। शायद क्योंकि किसी को भी इसे बुरी तरह से जरूरी नहीं था। –