6
साथ काम नहीं कर रहा है आप एक श्रृंखला पर पैटर्न मैच के लिए if let
उपयोग कर सकते हैं:एकाधिक पैटर्न जाने अगर
let n=1
if let 1...3 = n { println!("found in range") }
लेकिन मैं इसे कई पैटर्न पर काम नहीं कर सकते हैं:
// this does not compile
if let 1 | 2 | 3 = n { println!("found in pattern") }
// -^ unexpected token
मैंने सोचा दूसरा if let
से वंचित:
// this does compile and work
match n {
1 | 2 | 3 => println!("found in pattern"),
_ => {}
}
तो क्या देता है? क्या मैं गलत वाक्यविन्यास का उपयोग कर रहा हूं? क्या मेरी उम्मीद है कि कई पैटर्नों को सिर्फ गुमराह करना चाहिए? क्या यह अभी लागू नहीं हुआ है?
https://github.com/rust-lang/rfcs/issues/935 – interjay
@interjay आह धन्यवाद, इसलिए यह अभी लागू नहीं हुआ है। जिथब मुद्दे कई पैटर्न का जिक्र करता है लेकिन फिर चर्चा गार्ड पर केंद्रित होती है। किसी कारण से (बदसूरत परिणामस्वरूप वाक्यविन्यास?) मैं कम आश्चर्यचकित था कि गार्ड अगर काम करते हैं तो काम नहीं करते हैं। रेंज काम कर रहे कई पैटर्न बनाम काम नहीं कर रहा है मेरे लिए थोड़ा कम सहज ... –