मैं एक जंग पुस्तकालय में अपने खुद के प्रकार को परिभाषित है, तो तरह कहते हैं:जंग में डिफॉल्ट कन्स्ट्रक्टर को अक्षम करें?
struct Date {
year: u16,
month: u8,
day: u8
}
impl Date {
fn new(y: u16, m: u8, d: u8) -> Date {
// Do some validation here first
Date { year: y, month: m, day: d }
}
}
वहाँ के लिए एक रास्ता की आवश्यकता होती है उपयोगकर्ताओं Date::new
निर्माता का उपयोग करने के है? दूसरे शब्दों में, मैं किसी भी तरह तो जैसे डिफ़ॉल्ट निर्माता के साथ अपने स्वयं दिनांक struct बनाने जाने पर प्रतिबंध लगाने कर सकते हैं:
let d = Date { 2017, 7, 10 };
मैं पूछता हूँ, क्योंकि यह अगर आप एक के माध्यम से उनके तर्कों को चलाने के लिए डेवलपर्स के लिए मजबूर नहीं कर सकते हैं एक हानिकारक दोष प्रतीत हो रहा है एक संरचना के सदस्यों को स्थापित करने से पहले सत्यापन की बैटरी। (हालांकि, शायद कुछ अन्य पैटर्न हैं जिन्हें मुझे जंग में उपयोग करना चाहिए, जैसे डेटा का सत्यापन करने के बजाए उनका उपयोग किया जाता है; उस पर टिप्पणी करने के लिए स्वतंत्र महसूस करें।)
इसे सामान्यतः "डिफ़ॉल्ट कन्स्ट्रक्टर" नहीं कहा जाएगा; इसका अर्थ 'दिनांक :: डिफ़ॉल्ट' (['डिफ़ॉल्ट 'विशेषता] से होगा (https://doc.rust-lang.org/std/default/trait.Default.html))। मैं शायद यह "संरचना शाब्दिक वाक्यविन्यास" कहूंगा। – Shepmaster