Avatar ·

Rust में `for<>` (Higher-Ranked Trait Bounds) सिंटैक्स सामान्य lifetime बाधाओं से कैसे अलग है?

सभी को नमस्ते! मैं कुछ महीनों से Rust में लिख रहा हूँ, लेकिन अब भी लाइफटाइम के जटिल पहलुओं में भ्रमित हो जाता हूँ। हाल ही में मुझे `for<'a>` सिंटैक्स मिला और मैं समझ नहीं पा रहा हूँ कि यह सामान्य लाइफटाइम बाधाओं से कैसे अलग है। यहाँ एक उदाहरण है जिसने मुझे भ्रमित किया। मेरे पास एक फंक्शन है जो किसी भी लाइफटाइम के साथ काम करने वाला क्लोजर लेता है: ```rust fn example(f: F) where F: Fn(&str) -> &str { let s = String::from("hello"); println!("{}", f(&s)); } ``` लेकिन अगर मैं एक ऐसा क्लोजर पास करने की कोशिश करूँ जो आर्गुमेंट का रेफरेंस लौटाता है, तो यह काम करता है। और अगर मैं चाहता हूँ कि क्लोजर किसी भी लाइफटाइम के साथ एक रेफरेंस स्वीकार करे, तो मैं डॉक्यूमेंटेशन में यह सिंटैक्स देखता हूँ: ```rust fn example(f: F) where F: for<'a> Fn(&'a str) -> &'a str { // ... } ``` इसमें क्या अंतर है?

अभी तक कोई उत्तर नहीं।

लॉग इन करें उत्तर देने के लिए

ब्लॉग