Removing unnecessary function from Rust echo server -
यह कोड:
उपयोग std :: io :: {TcpListener, TcpStream}; Std :: io :: {स्वीकर्ता, श्रोता} का उपयोग करें; Fn मुख्य () {श्रोता = TcpListener :: बाँध ("127.0.0.1", 5555); // निर्दिष्ट पते पर श्रोता बद्ध करें mut accept = listener.listen (); // स्वीकार्य स्वीकार करें और उन्हें संसाधित करें, स्वीकार्यरिंग आने वाले (स्ट्रीम) के लिए प्रत्येक के लिए एक नया कार्य बढ़ाएं {मैच स्ट्रीम {एरर (ई) = & gt; {/ * कनेक्शन विफल * /} ठीक है (स्ट्रीम) = & gt; {// कनेक्शन स्पॉन (proc () (मूक बफ़: [u8, ..1024] = [0, ..1024]; लूप (लैन = स्ट्रीम। रीड (बफ़); चलो _ = स्ट्रीम। लिखें buf.slice (0, len.unwrap ()))}}}}}}}} इसके साथ विफल रहता है:
चैट संकलन v0.1.0 (फ़ाइल: /// होम / क्रिस / रास्ट / चैट) src / chat.rs: 19: 35: 19:41 त्रुटि: अस्थायी कब्जा किए गए बाह्य चर को एक proc `स्ट्रीम 'में अस्थिर स्रोत / चैट.rs: 1 9 के रूप में उधार नहीं उठा सकता लाएन = स्ट्रीम करें। रीड (बफ़); ^ ~~~~~ src / chat.rs: 20: 25: 20:31 त्रुटि: एक proc `स्ट्रीम 'में अस्थायी कब्जा किए गए बाहरी चर को अस्थिर स्रोत / चैट.rs: 20 stream.write (buf.slice 0, लेन। दोहराव ())); ^ ~~~~~ त्रुटि: 2 पिछली त्रुटियों के कारण निरस्त होने से `चैट` संकलित नहीं हो सका। लेकिन अगर मैं इस कोड को बदलता हूं:
spawn (proc () {fn handle (mut stream: tcpstream) {let buf: [u8 , ..1024] = [0, ..1024]; लूप (लैन = स्ट्रीम। रीड (बफ़); चलो _ = स्ट्रीम। लिखें (बफ़। सलिस (0, लेन.इनवाप ());}} हैंडल (स्ट्रीम);}) यह काम करता है।
क्या यह संभाल फ़ंक्शन को निकालने का एक तरीका है?
आपके कोड में मुश्किल बिंदु आपके पैटर्न में है जब आप कुछ लिखते हैं:
मैच foo.bar () {कुछ (मान) = & gt; {...}, _ = & gt; {}} आप एक नया चर ( मूल्य मेरे उदाहरण में) घोषित कर रहे हैं और उसमें इस विकल्प की सामग्री को स्थानांतरित कर सकते हैं। यह व्यावहारिक रूप से इसके बराबर है: मान = foo.bar ()। खोलना (); इस परिस्थिति में, कुछ भी इसे घोषित करने से इनकार करता है
मैच foo.bar () {कुछ (mut value) = & gt; {...}, _ = & gt; {}}
Comments
Post a Comment