2016-02-04 8 views
10

box सिर्फ सिंटैक्टिक चीनी है या इसे Box::new पर्याप्त मामलों के उपयोग के लिए लागू किया जा सकता है? मैंने कहीं पढ़ा है कि box अस्थिर है, इसका मतलब है कि मैं इसे केवल रात के जंग के संस्करणों के साथ उपयोग कर सकता हूं?बॉक्स कीवर्ड और बॉक्स :: नया उपयोग करने के बीच क्या अंतर है?

उत्तर

29

Box::new किसी अन्य फ़ंक्शन की तरह ही एक फ़ंक्शन है। यह किसी भी तरह से विशेष नहीं है। यह बहुत घबराहट और समाप्ति तिथि पनीर के बेहोशी से गंध है और गंध करता है।

box जादू है और ग्राउंड-अप पिक्सियां ​​और छोटे बच्चों के सपनों को बनाया गया है। यह बेहतरीन, स्वादिष्ट कपड़े पहने हुए हैं और इसमें ताजा कट पाइन की बेहोशी सुगंध है।

जब आप Box::new(e) पर अमल, क्योंकि यह एक समारोह है, e पूरी तरह से मूल्यांकन किया जाना चाहिए और से पहले निर्माण यह कॉल प्रारंभ कर सकते हैं। यदि इसका मतलब स्टैक पर 500kB संरचना आवंटित करना और भरना है, तो उसे स्टैक, पर 500kB संरचना आवंटित और भरना होगा और फिरBox::new पर पास करें, जो केवल ढेर पर स्थान आवंटित कर सकता है (जो असफल हो सकता है), और फिर ढेर में 500kB की प्रतिलिपि बनाएँ।

जब आप box e पर अमल, क्योंकि यह एक गर्म गर्मी के दिन पर एक ठंडी हवा की तरह अद्भुत है, संकलक बातें इस तरह के क्रम बदल सकते हैं कि यह , और फिर ढेर पर 500 केबी का आवंटन 500 KB संरचना भर कर शुरू होता है सीधे ढेर पर। और फिर यह हो गया। कोई अतिरिक्त प्रतिलिपि नहीं, स्टैक स्पेस के माध्यम से कोई चबाने नहीं। यदि कोई "ढेर पर आवंटित" चीज काम करने में विफल रहता है तो कोई बर्बाद प्रयास नहीं होता है।

box जीवन है, box प्यार है; सभी जय box!

(और हाँ, लेखन के रूप में, यह अभी भी अस्थिर है जो आप एक रात संकलक की जरूरत है उसकी चमक का गुणगान करने का मतलब है। लेकिन जल्द ही, सुबह आ जाएगा। यह जाओ? डॉन? रात? ... मैं मैं खुद को दिखाऊंगा ...)

+0

क्या कस्टम बॉक्स आवंटन को कवर करने वाला 'बॉक्स' कीवर्ड नहीं है (यानी,' बॉक्स' से कुछ * * आवंटित करना)? या इसे प्लेसमेंट '<-' द्वारा प्रतिस्थापित किया जाना है? –

+1

'बॉक्स' अनुमान के माध्यम से 'बॉक्स' (* उदा। *' आरसी', 'आर्क', * आदि *) के अलावा अन्य चीज़ों का समर्थन करेगा। '<-' * प्लेसमेंट * के लिए वर्तमान अस्थायी वाक्यविन्यास है, जो संबंधित है, लेकिन अलग है: 'बॉक्स' मान लगाने के लिए एक नई जगह बनाता है और फिर उसे वहां रखता है,' <-' एक * मौजूदा * एक वेक्टर के अंत में जगह (जैसे, कहें)। –

+1

मैंने इस उत्तर के हर हिस्से का आनंद लिया - मैंने कुछ भी सीखा। –

संबंधित मुद्दे