downcast()
जंग के Box
प्रकार की विधि को कॉल साइट को बॉक्स इंस्टेंस के पूर्ण स्वामित्व की आवश्यकता होती है। ऐसा समकक्ष प्रतीत नहीं होता है जो उधारित संदर्भ के साथ काम कर सकता है। क्या इसका कोई कारण है? क्या कोई कामकाज है जो उधारित उदाहरण पर काम करेगा?उधारित बॉक्स
6
A
उत्तर
9
एक विकल्प है, लेकिन यह Box
की विधि नहीं है: यह Any::downcast_ref()
है। Deref coersion और Box
es Deref
-impl के लिए धन्यवाद, आप सीधे पर T
के तरीकों को कॉल कर सकते हैं। इस प्रकार आप सीधे अपने Box<Any>
पर Any::downcast_ref()
कॉल कर सकते हैं:
let b: Box<Any> = Box::new(27u64);
// The type of `ref_a` and `ref_b` is `&u64`
let ref_a = b.downcast_ref::<u64>().unwrap();
let ref_b = b.downcast_ref::<u64>().unwrap();
println!("{} == {}", ref_a, ref_b);
वहाँ भी एक परिवर्तनशील संदर्भ प्राप्त करने के लिए Any::downcast_mut()
है।
संबंधित मुद्दे
- 1. बॉक्स
- 2. स्वामित्व स्थानांतरित करने का प्रयास करते समय उधारित सामग्री से बाहर नहीं जा सकता
- 3. जब वेक्टर के बाद उधारित मूल्य बनाए जाते हैं तो मैं वेक्टर में संदर्भ कैसे जोड़ूं?
- 4. Google सुझाव बॉक्स बॉक्स (स्वतः पूर्ण)
- 5. जावा - मुख्य बॉक्स में 9 बॉक्स जोड़ना
- 6. अलर्ट बॉक्स
- 7. कॉम्बो बॉक्स
- 8. बॉक्स होस्ट
- 9. टेक्स्ट बॉक्स
- 10. किंवदंती बॉक्स
- 11. लिनक्स बॉक्स
- 12. चेक बॉक्स
- 13. लिनक्स बॉक्स
- 14. लिनक्स बॉक्स
- 15. बॉक्स छाया
- 16. चेक बॉक्स
- 17. चुनिंदा बॉक्स
- 18. टेक्स्ट बॉक्स
- 19. टेक्स्ट बॉक्स
- 20. टेक्स्ट बॉक्स
- 21. रंग बॉक्स
- 22. देव बॉक्स
- 23. अलर्ट बॉक्स
- 24. चेक बॉक्स
- 25. सलेक्ट बॉक्स
- 26. आभासी बॉक्स
- 27. एक बॉक्स
- 28. धुरी बॉक्स
- 29. बॉक्स में
- 30. * {बॉक्स आकार: सीमा-बॉक्स; }: सीमा-बॉक्स के लिए या सीमा-बॉक्स के सभी तत्वों के लिए नहीं?