2015-12-18 4 views
9

मैंने पहले से ही कुछ बार Vec<_> देखा है। उदाहरण के लिए:वेक <_> क्या है?

let a = "line1\r\nline2\nline3"; 
println!("{:?}", a.lines().collect::<Vec<_>>()); 

लेकिन क्या है कि 'अनिश्चित चेहरा' <_> मतलब है?

मुझे कोण ब्रैकेट में एक टाइपनाम में उपयोग किया जाता है, लेकिन यह किस प्रकार का हो सकता है? अंडरस्कोर का एकमात्र अर्थ जिसे मैं जानता हूं वह पाइथन से एक अप्रयुक्त चर के नाम के रूप में है।

उत्तर

10

इसका मतलब है "जंग कंपाइलर, अनुमान लगाएं कि किस प्रकार Vec में जाता है"। और यह वास्तव में पाइथन (और जंग में स्वयं) में अप्रयुक्त चर के समान है, जिसमें यह किसी प्रकार के प्लेसहोल्डर का प्रतिनिधित्व करता है, जैसे कि यह एक चर नाम के लिए प्लेसहोल्डर का प्रतिनिधित्व कर सकता है।

आप में एक विवरण प्राप्त कर सकते हैं जंग प्रोग्रामिंग भाषा अध्याय iterator consumers के बारे में:

एक _ यदि आप किसी आंशिक संकेत प्रदान करने देगा का उपयोग करना:

let one_to_one_hundred = (1..101).collect::<Vec<_>>(); यह कहते "एक Vec<T> में इकट्ठा कृपया, लेकिन अनुमान लगाएं कि T मेरे लिए क्या है। " _ को कभी-कभी इस कारण से "टाइप प्लेसहोल्डर" कहा जाता है।

+2

धन्यवाद! कुछ कारणों से दस्तावेज़ों में जेनेरिक अध्याय पैरामीटर प्रकार अनुमान के बारे में कुछ भी नहीं कहता है। – Amomum

+0

क्या कहीं विशेष रूप से '_' वाक्यविन्यास के बारे में कोई दस्तावेज़ीकरण है? मुझे कोई नहीं मिला। मुझे केवल टेक्स्ट मिलता है जहां इसे इटरेटर्स समझाया जाता है। – Lii

+0

@Lii मुझे लगता है कि यह एकमात्र जगह है जिसका अभी उल्लेख किया गया है। फीचर को दस्तावेज करने के लिए जिथब पर मुद्दा बंद कर दिया गया है कि अनुयायी अनुभाग में पैराग्राफ जोड़ना: https://github.com/rust-lang/rust/pull/22293 –

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